ASP.NET MVC @ Html.DropDownList Использование списка для редактирования элемента - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь использовать @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 голосов
/ 29 июня 2019

Вы не устанавливали модель для 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.

...