我试图通过httppost发送一个包含字典的模型,但该字符串始终为空... 这是我的模特:
public class RoomListModel
{
public Dictionary<PersonModel, List<LocationModel>> list { get; set; }
public String mess { get; set; }
public RoomListModel(Dictionary<PersonModel, List<LocationModel>> list, String mess)
{
this.mess = mess;
this.list = list;
}
public RoomListModel()
{
}
}
在第一个视图中,正确填充并显示了这种模型(我已经完成了一些测试)。然后我尝试将它从视图中填充到我的控制器。以下是我的观点:
@for (int i = 0; i < Model.list.Count(); i++) {
<tr>
<td>
@Html.EditorFor(m => m.list.ElementAt(i).Key.isSelected)
</td>
<td>
@Html.DisplayFor(m => m.list.ElementAt(i).Key.login)
@Html.HiddenFor(m => m.list.ElementAt(i).Key.login)
</td>
<td>
@Html.DisplayFor(m => m.list.ElementAt(i).Key.role)
@Html.HiddenFor(m => m.list.ElementAt(i).Key.role)
</td>
<td>
@for (int j = 0; j < Model.list.ElementAt(i).Value.Count(); j++)
{
@Html.EditorFor( m => m.list.ElementAt(i).Value.ElementAt(j).isSelected )
@Html.DisplayFor( m => m.list.ElementAt(i).Value.ElementAt(j).id )
@Html.HiddenFor( m => m.list.ElementAt(i).Value.ElementAt(j).id )
@Html.HiddenFor( m => m.list.ElementAt(i).Value.ElementAt(j).name)<br />
}
</td>
</tr>
}
但是当发送该表单时,我有一个nullReferenceException:
[HttpPost]
public ActionResult CreateInventory(RoomListModel mod)
{
int nbPer = 0;
foreach (var per in mod.list)
{
if (per.Key.isSelected)
{
nbPer++;
}
}
if (nbPer == 0)
{ ...
关于mod.list。
您能否告诉我我的代码有什么问题?是因为Dictionnary对象吗?谢谢!