$.ajax({
type: 'POST',
url: '@Url.Action("AccountUpdate", "Customer")',
async: false,
data: { a:"ed", formCollection: $("#form1").serialize() }
});
控制器: -
public void AccountUpdate(string a, FormCollection formCollection) {}
问题: - 在控制器AccountUpdate中我得到参数a =" ed"这很好。 但是在FormCollection对象中,我得到 formCollection对象以及' a' 对象 为什么表单集合对象接收' a'对象?它应该只是formCollection对象
答案 0 :(得分:1)
data: $("#form1").serialize()
是要走的路。
如果您想添加一些额外的参数:
$.ajax({
type: 'POST',
url: '@Url.Action("AccountUpdate", "Customer")',
// async: false,
data: "a=ed&" + $("form1").serialize()
});
这样您就可以直接绑定到视图模型:
[HttpPost]
public ActionResult Index(string a, Customer customer)
{
...
}
答案 1 :(得分:1)
POST方法的参数是typeof FormCollection
,它是一个包含所有提交的键/值对的类。
将您的方法更改为
[HttpPost]
public void AccountUpdate(string a, Customer model)
并更改您的脚本以允许您的模型和附加值在方法
中提交和绑定var data = $("#form1").serialize() + '&' + $.param({ 'a': 'ed'});
$.ajax({
type: 'POST',
url: '@Url.Action("AccountUpdate", "Customer")',
data: data
});