3

ここで私の質問に対する答えが得られなかったので、MVC FormCollectionのチェックボックスとラジオボタン

別のアプローチを取り、ラジオボタンの値のクライアント側を見つけて、ajax呼び出しで別の名前/値のペアとして渡すと思いました...それは素晴らしいアイデアでしたが、取得できません仕事。

これを使用すると、フォーム コレクションを渡すことができます。

formCollection = $(':input');
        $.ajax({
            type: "POST",
            url: "/mycontroller/mymethod",
            data: formCollection,
            dataType: "text",
            success: showConfirm,
            error: function (xhr, textStatus, errorThrown) {
                alert(xhr.responseText);
            }
        });

しかし、データを次のようなオブジェクトに変更しようとすると:

formCollection = $(':input');
        $.ajax({
            type: "POST",
            url: "/mycontroller/mymethod",
            data: ({collection: formCollection}),
            dataType: "text",
            success: showConfirm,
            error: function (xhr, textStatus, errorThrown) {
                alert(xhr.responseText);
            }
        });

飛ばない。最終的にこれを使用できるように、それを行う必要があります。

formCollection = $(':input');
        $.ajax({
            type: "POST",
            url: "/mycontroller/mymethod",
            data: ({collection: formCollection, radiobutton: radiobuttonValue}),
            dataType: "text",
            success: showConfirm,
            error: function (xhr, textStatus, errorThrown) {
                alert(xhr.responseText);
            }
        });

コントローラーのアクション メソッドは次のようになります。

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult mymethod(FormCollection collection)
        {
}

データを変更すると機能しないのはなぜですか?

4

2 に答える 2

2

formCollection = $('form').serialize()代わりに使用してみてください。

http://api.jquery.com/serialize

これにより、GET クエリ文字列のような文字列が生成され、最初のコード サンプルで直接使用できます。

于 2011-09-13T15:23:22.667 に答える
0

//まず問題を解決する field の値を取得しようとします formCollection = $(':input').val();

于 2011-09-13T15:03:11.493 に答える