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

//首先尝试获取字段的值,解决问题 formCollection = $(':input').val();

于 2011-09-13T15:03:11.493 回答