我试过这是RC1,然后升级到RC2,但没有解决问题.
// in my controller
ViewData["UserId"] = new SelectList(
users,
"UserId",
"DisplayName",
selectedUserId.Value); // this has a value
Run Code Online (Sandbox Code Playgroud)
result:在对象上设置SelectedValue属性
// in my view
<%=Html.DropDownList("UserId", (SelectList)ViewData["UserId"])%>
Run Code Online (Sandbox Code Playgroud)
结果:所有预期选项都呈现给客户端,但未设置所选属性.SelectedValue中的项目存在于列表中,但列表中的第一项始终默认为选中.
我该怎么做?
更新 感谢John Feminella的回复,我发现了问题所在."UserId"是我的视图强类型化的模型中的属性.当Html.DropDownList("UserId"更改为除"UserId"之外的任何其他名称)时,将正确呈现所选值.
这导致值不受模型约束.
我有这个HTML ...
<select id="View" name="View">
<option value="1">With issue covers</option>
<option value="0">No issue covers</option>
</select>
Run Code Online (Sandbox Code Playgroud)
它不会让我插入这样的代码......
<select id="View" name="View">
<option value="1" <% ..logic code..%> >With issue covers</option>
<option value="0" <% ..logic code..%> >No issue covers</option>
</select>
Run Code Online (Sandbox Code Playgroud)
那么设置一个被选中的最佳方式是什么?
更新:不使用HTML帮助程序.