我的模型大部分使用$('form').serializeArray()
填充,但是需要從其管理器填充形成分頁網格的對象數組。 例如:具有複雜陣列的控制器中的綁定MVC模型
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正確地填充模型?謝謝。
如果你發送多行,那麼我會說你發送多個模型。您需要將您的控制器簽名更改爲公共JsonResult SubmitForm(IEnumerable input)' –
模型中只有1個名稱和說明,但有很多行。所以它是一個模型中的許多模型。 – Tim