我正在使用一个包含List作为属性的模型。我正在用我从SQL Server获取的项目填充此列表。我希望将列表隐藏在视图中并传递给POST操作。稍后,我可能想使用jQuery向此列表添加更多项,这使得数组不适合稍后扩展。通常你会用
@Html.HiddenFor(model => model.MyList)
以完成此功能,但由于某种原因,POST中的List始终为空。
很简单的问题,有人知道为什么MVC会这样吗?
我刚刚遇到了这个问题,只需执行以下操作即可解决该问题:
@for(int i = 0; i < Model.ToGroups.Length; i++) { @Html.HiddenFor(model => Model.ToGroups[i]) }
通过使用for而不是foreach,模型绑定将正常工作,并选择列表中的所有隐藏值。似乎是解决此问题的最简单方法。