我有一个拥有一组用户的模型。我循环遍历此集合以生成用户表。表中的一个选项是更改用户角色,该角色是用户对象的枚举属性。目前我有以下代码:
@foreach (var user in Model.Users)
{
<tr>
...
<td>
<form action="@Url.Action("UpdateRole", "Admin", new { id = user.Id })" class="inline">
@Html.DropDownList("Role", Model.GetRoles())
</form>
</td>
...
</tr>
}
此代码的问题在于生成的下拉列表不知道用户对象上属性的实际值。但是,我看到DropDownList方法没有重载,该方法接受用于所选值的值。 DropDownListFor方法可以,但它似乎直接在模型上运行,我无法找到一种方法来传递嵌套用户对象的类型。可以这样做吗?
答案 0 :(得分:1)
您可以使用SelectList
[1]覆盖所选值,例如:
@Html.DropDownList("Role", new SelectList(Model.GetRoles(), "selectedValueHere"))
答案 1 :(得分:0)
您可以创建自定义DropDownList HtmlHelper扩展方法,其中包含您需要的选项。