这就是我从我的模型中实现下拉列表的方式。我只是想检查这是否是正确的方法还是有更简单的方法?看起来相当复杂。
我的清单型号:
public class ApplicationRolesDropdownListDetailViewModel
{
public String RoleId { get; set; }
public String ApplicationRoleName { get; set; }
}
进入我的视图的视图模型
public class ApplicationRolesDropdownListViewModel
{
public SelectList Roles { get; set; }
}
获取项目列表并将其放在视图中的下拉列表中的控制器:
public ActionResult NewRole()
{
var applicationRoles = applicationRolesData.GetAllApplicationRoles();
ApplicationRolesDropdownListViewModel ardlvm = new ApplicationRolesDropdownListViewModel();
ardlvm.Roles = new SelectList(applicationRoles, "RoleId", "ApplicationRoleName");
return View("~/Views/Users/Modals/AddRole.cshtml", ardlvm);
}
我的观点:
<div class="form-group">
@Html.DropDownListFor(m => m.Roles,Model.Roles, new { @id = "role", @class = "dropdown" })
</div>
此外,当我通过 javascript 从列表中选择一个项目时,我似乎无法获得 RoleId。
编辑:添加了我的 GetApplicationRoles
public List<ApplicationRolesDropdownListViewModel > GetAllApplicationRoles()
{
List<ApplicationRolesDropdownListViewModel > data = new List<ApplicationRolesDropdownListViewModel >();
try
{
var applicationRoles = dbContext.AspNetRolesExtendedDetails.ToList();
data = (from ar in applicationRoles
join a in dbContext.AspNetApplications
on ar.ApplicationId equals a.Id
select new ApplicationRolesDropdownListViewModel
{
RoleId = ar.Id,
ApplicationRoleName = ar.Name + " ( " + a.Name + " )"
}).ToList();
}
catch (Exception e)
{
logger.Error(e, AspNetEventLogs.NotFound);
}
return data;
}
慕运维8079593
相关分类