我有一个使用 Razor 视图引擎的 MVC 4 项目,发现了一些奇怪的东西:
我在视图中有以下代码行:
@Html.DropDownListFor(model => model.TypA.Enum, Html.GetEnumList())
这工作正常(Html.GetEnumList()
返回一个List<SelectListItem>
包含有效项目),但现在我有一个TypeA
我正在for
循环显示/编辑的列表:
@for(int i = 0; i < Model.ListOfA.Count; ++i)
{
@Html.DropDownListFor(model => model.ListOfA[i].Enum, Html.GetEnumList())
}
现在在这种情况下,如果我编辑现有项目,则不会在下拉列表中预先选择当前值,就像在第一种情况下一样。如果我手动更改该值并将其发布回服务器,则会在列表中的每个对象中设置正确的值。
有谁知道为什么预选在这里不起作用?
现在我做了一个解决方法,将当前值提供给GetEnumList(model.ListOfA[i].Enum)
,然后将Selected
属性设置为true
on SelectListItem
,但我认为这不是必需的,因为它适用于第一种情况......