ASP.NET MVC @ Html.DropDownList使用列表编辑项目

时间:2019-06-19 07:44:25

标签: asp.net-mvc forms dropdown viewbag

我正在尝试将@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>

1 个答案:

答案 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