【问题标题】:Populating dropdownlist in ASP.NET Core在 ASP.NET Core 中填充下拉列表
【发布时间】:2019-01-20 16:50:23
【问题描述】:

我的下拉列表有问题。它总是空的,即使在调试时在 asp-items 中设置的列表中有 4 个不同的条目,如下所示:

https://imgur.com/a/CYZSO5z

我做错了什么?

视图模型:

public IEnumerable<SelectListItem> SelectRole { get; set; }

public string RoleId { get; set; }

控制器:

 model.SelectRole = _roleManager.Roles?.Select(s => new SelectListItem
 {
     Value = s.Id,
     Text = s.Name
 });

查看:

<select asp-for="RoleId" asp-items="@Model.SelectRole" class="form-control" />

【问题讨论】:

    标签: c# asp.net asp.net-core asp.net-core-mvc


    【解决方案1】:

    问题是你使用自闭select标签如下:

    <select asp-for="RoleId" asp-items="@Model.SelectRole" class="form-control" />
    

    无法正确生成选择列表。

    您可以按如下方式调整您的代码:

    在 ViewModel 中:

    public SelectList RoleSelectList { get; set; }
    
    public string RoleId { get; set; }
    

    在控制器方法中:

    var roleList = _roleManager.Roles.Select(r => new {r.Id, r.Name}).ToList();
    model.RoleSelectList = new SelectList(roleList, "Id","Name");
    

    在视图中:

    <select asp-for="RoleId" asp-items="Model.RoleSelectList" class="form-control">
       <option value="">Select Role</option>
    </select>
    

    现在一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 2020-05-07
      相关资源
      最近更新 更多