将集合作为模型传递而没有有序索引

时间:2014-10-11 11:22:02

标签: asp.net-mvc razor asp.net-mvc-5

我有对象列表,我将它传递给查看并正确呈现。 enter image description here

当我提交此表单时,我将获得相同的模型。一切正常。 不幸的是,当我决定使用jquery动态删除一些记录时,它看起来像这样 enter image description here 提交表单后,我只获得了2个第一项的列表。这可能是因为索引不是自然顺序(0,1,3而不是0,1,2)。 有什么我可以做的很容易修复它(不使用jquery来改变输入,smth服务器端)?我试图将数组更改为List或Ienumerable但仍然没有。我知道我可以将所有内容打包并以json的形式发送或只是阅读formCollection,但我想先问一下这里是否有其他解决方案。

1 个答案:

答案 0 :(得分:5)

您需要为Index属性添加一个输入,以允许您回发非连续的索引器。索引的值必须与集合索引器匹配。例如

for(int i = 0; i < model.tagList.Count; i++)
{
  @Html.TextBoxFor(m => m.tagList[i].Name);
  <input type="hidden" name="tagList.Index" value="@i" />
}