Добавление Enum в MVC View разбивает возвращенную модель - PullRequest
0 голосов
/ 25 июня 2019

У меня есть этот контроллер:

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit(ExempKillData kill)
        {
            if (ModelState.IsValid)
            {
                db.Entry(kill).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index","Owners");
            }
            return View(kill);
        }

и эта (отрезанная по длине) модель:

[Display(Name ="No Data")]
        [StringLength(40)]
        public string NO_DATA { get; set; }

        public DisposalMethods MethodOfDisposal { get; set; }

        public int ID { get; set; }

и это (отрезанное по длине) представление:

                    <td valign="top">
                        @Html.EditorFor(model => kill.SPECIES, null, "SPECIES", new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => kill.SPECIES, "", new { @class = "text-danger" })
                    </td>
                    <td valign="top">
                        @Html.EnumDropDownListFor(model => kill.MethodOfDisposal, null, new { @class = "form-control" })
                    </td>
                    <td valign="top">
                        @Html.EditorFor(model => kill.EXEM_YEAR, null, "EXEM_YEAR", new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => kill.EXEM_YEAR, "", new { @class = "text-danger" })
                    </td>

Я попробовал оба этих метода для объявления выпадающего списка:


@Html.EnumDropDownListFor(model => kill.MethodOfDisposal, "MethodOfDisposal", new { @class = "form-control" })

@Html.EnumDropDownListFor(model => kill.MethodOfDisposal, null, new { @class = "form-control" })

Это прекрасно работает, если я закомментирую @ Html.EnumDropDownListFor - модель, возвращаемая в контроллер, полностью детализирована, за исключением значения Enum.

Good model

Как только я раскомментирую EnumDropDownList, модель, возвращаемая в контроллер, будет иметь все нулевые значения. ... кроме метода удаления.

Null model

... это несмотря на то, что мои данные выглядят хорошо из-за действия POST на представлении:

Good data

Что я делаю не так? Я ожидаю, что добавление нового поля в представление, чтобы не сломало остальную часть модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...