我正在使用 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
,但如果有人知道解决方法,我很想听听!