用jQuery序列化MVC表单
Serializing MVC form with jQuery
是否可以用jQuery序列化MVC表单,就像MVC引擎一样?准确地说,通过足够聪明地将输入数据"组装"到Model对象中?
例如,假设这是我的简单模型: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/
我已经在我的项目中使用Serialize表单对象。
您必须编写以下代码来序列化表单对象。
var formId = '#form2';
var SData = $(formId).serialize();
你必须在视图索引中定义表单。
<form id="form2">
如果你使用Post方法,那么你需要在Action中定义[HttpPost]。
您在索引中使用的模型,您需要在Action中用作参数的相同模型。请检查以上标准,你一定能够序列化表单对象,如果你失败了,告诉我我们会解决你的问题。
谢谢。
相关文章:
- 表单未使用 MVC 提交任何值 Asp.Net
- ASP MVC复选框表单提交问题
- 如何将整个模型集附加到表单数据中,并在MVC中获得它
- asp.net mvc中的javascript验证不适用于登录表单
- 在带有 bootbox 的自定义对话框中添加选项以选择表单控件.js在 ASP.NET MVC 中
- 使用Html.BeginFrom在ASP.Net MVC中提交一个带有锚(<a>)标记且具有一定值的表单
- 在带有Partial视图的MVC 5中,将提交按钮移动到表单外部
- jquery禁用表单提交时输入MVC 4
- 通过表单 C# MVC 发送 JSON 对象
- ExtJS MVC 表单引用
- MVC 3,剃刀视图 - 覆盖默认表单帖子
- 提交表单而不刷新(SPRING MVC 3)
- 使用 jQuery 在 MVC 中隐藏或显示基于 DDL 选择的表单控件
- 表单:输入标签抛出错误弹簧 MVC
- MVC 3 剃刀无法使用验证类清除表单值
- 如何在验证失败弹簧 MVC 时保留输入表单值
- asp.net MVC 的客户端验证“潜在危险的请求表单...”
- 如何使用 Web 表单(不是 MVC 或 asmx 页面)从 ajax Http POST 获取 c# 服务器端的复选框
- 同时保存两个表单MVC 3
- 在向表单MVC中插入数据后,在视图中显示错误或成功消息