用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
构造函数期望该对象被选为第四个参数。不能在构造函数中通过指定其属性之一的值来自动选择此对象。正确的版本是:
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" })