我正在尝试将@Html.DropDownList
与自定义列表一起使用。问题是当我去编辑一个条目时,它的默认值是列表中的第一项,但我希望它是它原来的值。当我不使用Viewbag时,它会预先选择它原来的项目。
这是我正在使用的ViewBag。
ViewBag.AreaEmployeeEdit= db.Areas
.OrderBy(s => s.Site.SiteName)
.Select(s => new SelectListItem
{
Value = s.AreaID.ToString(),
Text = s.Site.SiteName + " " + "||" + " " + s.Area1
});
这是在编辑表单中。
<div class="form-group">
@Html.LabelFor(model => model.AreaID, "Area", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("AreaID", (IEnumerable<SelectListItem>)ViewBag.AreaEmployeeEdit, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.AreaID, "", new { @class = "text-danger" })
</div>
</div>
答案 0 :(得分:0)
您没有为DropDownList
设置模型
您的编辑应该是这样
<div class="form-group">
@Html.LabelFor(model => model.AreaID, "Area", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList(model => model.AreaID, (IEnumerable<SelectListItem>)ViewBag.AreaEmployeeEdit, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.AreaID, "", new { @class = "text-danger" })
</div>
</div>
我将"AreaID"
替换为model => model.AreaID
。