我在 JavaScript 中构建了一个对象数组,并希望通过 Ajax 将它们发布回服务器(我使用 jQuery)
JavaScript 对象数组如下所示:
var columns = [
{ name: 'col 1', source: 'whatever', hidden: false, width: 50 },
...
];
我把它发回来是这样的:
$.post('/MyController/MyAction', { 'columns': columns });
在控制器操作上,我目前得到这个:
我有一个 ac# 对象JqColumn
,我想将帖子绑定到它,它看起来像这样:
public class JqGridColumn
{
public string name;
public string source;
public int width;
public bool hidden;
}
所以我认为在类型的控制器动作中添加一个参数JqGridColumn[] columns
会自动绑定发布的数据,但它不会(它生成一个数组,元素数量正确,但数组中的每个项目都有空白值)
谁能告诉我我做错了什么?谢谢!
更新
目前,我正在手动绑定控制器操作中的项目,如下所示:
public void ColumnChooser(JqGridColumn[] columns)
{
for (int i = 0; i < columns.Length; i++)
{
columns[i].hidden = bool.Parse(Request.Form["columns[" + i + "][hidden]"]);
columns[i].width = int.Parse(Request.Form["columns[" + i + "][width]"]);
columns[i].name = Request.Form["columns[" + i + "][name]"];
columns[i].source = Request.Form["columns[" + i + "][source]"];
}
return;
}
...效果很好,但我真的很想知道.Net MVC(正确)的方法!