是否可以像 MVC 引擎一样使用 jQuery 序列化 MVC 表单?准确地说,是通过足够聪明将输入数据“组装”到模型对象中?
例如,假设这是我的简单模型:
public List<Person> People {get;set;}
这是我的表格:
<form>
<input name="People[0].Id" value="9B776FB9-28B9-4364-A320-22E00A3E05D4" type="hidden">
<input name="People[0].Name" value="Jon Doe" type="hidden">
</form>
期望的结果:
People: [
{
Id: "9B776FB9-28B9-4364-A320-22E00A3E05D4",
Name: "Jon Doe"
}
]
我尝试使用 $("form").serialize(),但这是返回的 Json:
[
{
name: "People[0].Id",
value: "9B776FB9-28B9-4364-A320-22E00A3E05D4"
},
{
name: "People[0].Name",
value: "Jon Doe"
}
]
如您所见,它所做的只是将每个输入作为单独的对象返回,而不是“理解”这两个输入各自代表同一对象的属性。
有什么办法可以实现这个目标吗?
JsFiddle:https://jsfiddle.net/abu6mh1z/
最佳答案
我已经在我的项目中使用序列化表单对象。
您必须编写以下代码来序列化表单对象。
var formId = '#form2';
var SData = $(formId).serialize();
您必须在 View Index 中定义表单。
<form id="form2">
如果您使用Post方法,那么您需要在Action中定义[HttpPost]。
<小时/>您在索引中使用的模型,您需要在操作中用作参数的模型。请检查以上条件,您一定能够序列化表单对象,如果失败,请告诉我我们将解决您的问题。
谢谢。
关于javascript - 使用 jQuery 序列化 MVC 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40219427/