javascript - 使用 jQuery 序列化 MVC 表单

标签 javascript c# jquery json asp.net-mvc

是否可以像 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/

相关文章:

c# - 将哈希表从 C# 传递到 PowerShell

javascript - ajax提交后隐藏div

javascript - 如何使用 JQuery 从 <tr> 元素内的所有输入元素获取值

javascript - future 时间的接载预估 Uber API

PHP/Ajax 无法发送值

c# - 使用 smtp SendAsync 发送邮件

c# - ASP.NET 定时器刷新整个页面

jquery - Bootstrap-select 不起作用

javascript - Jquery UI Slider 不正确的最大值

javascript - 带有内联模板的 Vuejs 嵌套组件