用SelectList填充的下拉列表忽略selectedValueProperty

本文关键字:selectedValueProperty 下拉列表 SelectList 填充 | 更新日期: 2023-09-27 17:49:24

您好,我创建了一个SelectList:

ViewBag.RoleId = new SelectList(unitOfWork.roleRepository.Get(), "Id", "RoleName", user.RoleId);

可以看到,SelectedValue属性是为这个SelectList设置的。

我将它绑定到DropDownList,就像在这个例子中:

@Html.DropDownList("RoleId", null, new { @class = "form-control" })

列表被填充,但所选值始终是列表中的第一个值,而不是控制器中的user.RoleId。如何修改初始化的Html帮助使其工作?

用SelectList填充的下拉列表忽略selectedValueProperty

SelectList构造函数期望该对象被选为第四个参数。不能在构造函数中通过指定其属性之一的值来自动选择此对象。正确的版本是:

var data = unitOfWork.roleRepository.Get();
ViewBag.RoleId = new SelectList(data, 
                 "Id", 
                 "RoleName",
                 data.Where(x => x.Id == user.RoleId).FirstOrDefault());

将下拉列表绑定为:

@Html.DropDownList("Id", (SelectList)ViewBag.RoleId, "Select Item", new { @class = "form-control" })
相关文章:
  • 没有找到相关文章