MVC html.DropdownFor:绑定列表和选择

MVC html.DropdownFor: binding the list and the selection

我正在使用模型状态检查。因此,当出现错误时,我想 return 用户填写的是相同的模型。但是我的表格有 html.DropDownListFor.

 @Html.DropDownListFor(x => x.Item.SelectedId, Model.ItemList)

下拉列表将错误提示我的 select 列表 (Model.ItemList) 为空。这是因为 dropDownListFor 正确绑定了 selected 值,但现在在我的 post 操作中该列表为空。有没有默认的方法来解决这个问题。随着列表本身的绑定和 selected 值。

我知道我可以做一个 html.HiddenFor 并用类似的东西绑定整个列表:

<input name="name[0].Id" type="text" />
<input name="name[1].Id" type="text" />
<input name="name[2].Id" type="text" />

或者我什至可以编写自己的扩展来为我做这件事。

现在在 post 操作中,我只是重新填充 select 列表,但我很好奇是否还有另一种方法,因为我的搜索没有找到任何结果。

似乎没有任何有助于模型状态和 select 列表的内置功能。

因为这个 link 也指的是那个。 http://benfoster.io/blog/automatic-modelstate-validation-in-aspnet-mvc