使用jQuery序列化MVC表单

时间:2016-10-24 13:13:43

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

是否可以使用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"
    }
]

我尝试使用$(&#34; form&#34;)。serialize(),但这是返回的Json:

[
    {
        name: "People[0].Id",
        value: "9B776FB9-28B9-4364-A320-22E00A3E05D4"
    },
    {
        name: "People[0].Name",
        value: "Jon Doe"
    }
]

正如您所看到的,它所做的只是将每个输入作为单独的对象而不是&#34;理解&#34; 2个输入表示每个属性是同一个对象。

我能以任何方式实现这一目标吗?

JsFiddle:https://jsfiddle.net/abu6mh1z/

1 个答案:

答案 0 :(得分:-1)

我已经在我的项目中使用了Serialize表单对象。

您必须在下面编写序列化表单对象的代码。

var formId = '#form2';

var SData = $(formId).serialize();

您必须在View Index中定义表单。

<form id="form2">

如果您使用Post方法,则需要在Action中定义[HttpPost]。

您在Index中使用的模型,您需要在Action中使用相同的模型作为参数。请检查以上标准,您肯定能够序列化表单对象,如果您失败了,请告诉我们我们将解决您的问题。

谢谢。