【发布时间】:2012-11-03 05:46:29
【问题描述】:
我的大部分模型都是使用$('form').serializeArray() 填充的,但是需要从其管理器填充形成分页网格的对象数组。
例如:
public JsonResult SubmitForm(MyViewModel input)
{
...
public class MyViewModel
{
[Display(Name = "Name")]
public string GridName { get; set; }
[Display(Name = "Description")]
public string GridDescription { get; set; }
public GridRow[] GridRows { get; set; }
名称和描述将由serializeArray() 获取,没有问题。如果GridRow 是string[],那么它接受我只需将多个实例推送到jquery 制作的序列化数组中:
var data = $('form').serializeArray();
for (var i in gridData) {
data.push({ name: 'GridRows', value: gridData[i].id });
}
$.ajax({
type: "POST",
url: '/Central/Results/SubmitForm',
dataType: "json",
data: data,
这样我至少可以得到一个 ID 数组。但是,当我想填充正确的数据类型时,它不允许我将整个对象推入其中 (gridData[i])。当它到达控制器时,我总是得到一个空值。
知道我需要如何处理数据以使 MVC 正确填充模型吗?谢谢。
【问题讨论】:
-
如果您要发送多行,那么我会说您要发送多个模型。您需要将控制器签名更改为
public JsonResult SubmitForm(IEnumerable<MyViewModel> input) -
模型中只有1个名称和描述,但是很多行。所以它在一个模型中有很多模型。
标签: javascript asp.net-mvc asp.net-mvc-3 jquery