Почему мой член MVC ViewModel переопределяется моим параметром ActionResult?

Это ошибка или особенность?

Весь приведенный ниже код был упрощен для краткости и простоты репликации и на самом деле не делает ничего полезного, кроме выделения поведения. Это поведение аналогично Html.TextBoxFor, Html.Hidden, Html.HiddenFor и т. Д.

Что дает?

РЕДАКТИРОВАТЬ: Я давно хотел обновить это, но так и не нашел его. Причина, по которой это происходит, заключается в том, что ModelState будет иметь запись «id» со значением параметра «id» в методе, а MVC ViewEngine сначала проверяет ModelState при заполнении Html-помощников вместо Model. Чтобы обойти это, вы можете просто добавить следующую строку в свой контроллер непосредственно перед возвратом:

ModelState.Remove("id");

Теперь <% = Html.TextBox ("ID", Model.ID)%> получит значение из модели, а не ModelState. Проблема решена.

5
задан tereško 30 August 2013 в 23:45
поделиться