因为我从来没有在这里得到答案:checkboxes and radio buttons in 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)
{
}
任何想法,为什么当我更改数据时,它不起作用?
答案 0 :(得分:1)
请尝试使用formCollection = $('form').serialize()
。
http://api.jquery.com/serialize
这将产生一个看起来像GET查询字符串的字符串,您可以直接在第一个代码示例中使用它。
答案 1 :(得分:0)
//首先尝试获取字段的值,以解决问题 formCollection = $(':input')。val();