我刚刚将整个应用程序切换到使用我的主管编写的LDAP的MVC成员资格。登录和验证工作。但是,现在我需要更改应用程序中的selectLists以在成员资格表中拉取角色,同时还将用户拉入技术人员角色。我在拉动所有角色时的第一次尝试包括这次尝试:
在我的控制器中:
ViewBag.TypeId = new SelectList(Roles.GetAllRoles(), "Id", "Name");
然后我的剃刀视图中的代码:
<div class="form-group">
@Html.Label("Type", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-3">
@Html.DropDownList("TypeId", null, "Select Type", htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.TypeId, "", new { @class = "text-danger" })
</div>
</div>
我发现了这个,但我看不到如何保存列表中的ID,或者如何将其转换为下拉列表而不是ListBox:
ASP.net MVC SelectList filed with all roles
以下是我在视图中的下拉列表中收到的错误:
类型&#39; System.Web.HttpException&#39;的例外情况发生在System.Web.dll中但未在用户代码中处理
其他信息:DataBinding:&#39; System.String&#39;不包含名称为&#39; RoleId&#39;。
的媒体资源以下是表格:
答案 0 :(得分:0)
ViewBag.TypeId = new SelectList(Roles.GetAllRoles(), "RoleId", "RoleName");
您可以获得SelectList
之类的角色。
@Html.DropDownListFor(m => m.TypeId, (SelectList)ViewBag.TypeId, "Select Type", new { @class = "form-control" })