我正在使用 ASP.NET MVC 2.0,但显然这也是 MVC 3.0 中的一个问题。
基本上,如果您有一个“复杂”的属性名称,Html.DropDownListFor则不设置任何SelectListItem.Selected = true.
所以这有效(在哪里ViewData.States)IEnumerable<SelectListItem>。
<td><%= Html.DropDownListFor( m => m.State, ViewData.States ) %></td>
但这不会:
<td><%= Html.DropDownListFor( m => m.CaseFields[i].State, ViewData.States ) %></td>
我看到了这个 QA,其中回答者正确地解释了问题,但是他使用SelectList作为参数的解决方案DropDownListFor在我的情况下不起作用 - 我得到完全相同的结果(<option>元素负载但不是单个selected="selected"属性)。
我很想重新实现DropDownListFor,但如果有人知道解决方法,我很想听听!