您好我创建了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帮助器的初始化以使其工作?
答案 0 :(得分:1)
SelectList
构造函数需要将对象选为第4个参数。通过指定其中一个属性的值,无法在构造函数中自动选择此对象。正确的版本是:
var data = unitOfWork.roleRepository.Get();
ViewBag.RoleId = new SelectList(data,
"Id",
"RoleName",
data.Where(x => x.Id == user.RoleId).FirstOrDefault());
答案 1 :(得分:0)
将下拉列表绑定为:
@Html.DropDownList("Id", (SelectList)ViewBag.RoleId, "Select Item", new { @class = "form-control" })