我已經看到類似的問題,並遵循例行答案,以確保所有模型數據都在HTML中呈現。回傳時,在視圖中呈現的MVC模型數據爲空
我已經這樣做了,模型在@ Html.HiddenFor()的視圖中呈現,但是當回發給控制器時,列表中沒有項目?
的看法會很樂意呈現在列表中的多個項目,但List<Item> Items
在發佈的數據始終是一個空列表(NOT NULL)
型號
public class ItemCollection
{
public List<string> AvailiableActions { get; set; }
public List<Item> Items { get; set; }
}
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public string SelectedAction { get; set; }
}
查看
@model ItemCollection
@using (Html.BeginForm("myAction", "myController", FormMethod.Post))
{
<fieldset>
<div>
@Html.HiddenFor(m => Model.Items)
@Html.DisplayNameFor(x => x.AvailiableActions)
<table>
@{
foreach (var item in Model.Items)
{
@Html.HiddenFor(m => item)
@Html.HiddenFor(s => item.Id)
<tr>
<td>@item.Name</td>
<td>@Html.DropDownList(item.SelectedAction, new SelectList(Model.AvailiableActions))</td>
</tr>
}
}
</table>
</div>
</fieldset>
}
控制器
[HttpPost]
private ActionResult myAction(ItemCollection model)
{
if (model.Items.Count() == 0)
{
// this is true.. something is wrong......
}
}
我們需要這個@ Html.HiddenFor (m => item)? – malkam 2015-03-25 07:51:05