JavaScript でオブジェクトの配列を構築し、それらを Ajax 経由でサーバーに送り返したい (私は jQuery を使用しています)
JavaScript オブジェクト配列は次のようになります。
var columns = [
{ name: 'col 1', source: 'whatever', hidden: false, width: 50 },
...
];
次のように投稿します。
$.post('/MyController/MyAction', { 'columns': columns });
コントローラーアクションで、現在これを取得しています:
JqColumn
投稿をバインドしたいという ac# オブジェクトがあり、次のようになります。
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 (正しい) 方法を知りたいです!