ASP.NET MVC DEFAULTMODELBINDER не Свойства привязки на пост
-
11-09-2019 - |
Вопрос
Я сталкиваюсь с действительно странной проблемой, которая заставляет меня курить.
У меня есть довольно простой сценарий, в котором у меня есть сильно напечатанный вид, который правильно заполняется от контроллера на GET, но затем, когда он публикует форму для контроллера, рекост полон всех правильных значений и правильных имен ключей для Модель по умолчанию связующую, чтобы правильно заполнить один из моих объектов модели, и DMB создает правильный выбор, но он никогда не зажигает ни одного из свойств, все они находятся в состоянии их по умолчанию.
Это работало раньше, единственные изменения, о которых я мог придумать, было то, что я попробовал пользовательский модельный Binder (затем снял его; дважды проверил, чтобы убедиться, что я все еще не использую это), и я отразил модель, чтобы получить базовый класс с некоторыми реквизита.
Какие-нибудь мысли?
Решение 2
Понятно. Модель была отражена таким образом, что, естественно, повлияло на способность связующего MDOEL заполнять его.
Другие советы
Очень похожий сценарий - что DefaultModelbinder - по существу - не связывается с вашей моделью, Arrise, если вы дадите своему объекту Bound Model одинаковое имя, как одно из его свойств:
Модель
Public Property ArbitraryName1 As Integer
Public Property Answer As String
Public Property ArbitraryName2 As Boolean
Вид
<p/> ... @Model.ArbitraryName1
<p/> Answer: @Html.TextBoxFor(Function(model) model.Answer)
<p/> ... @Html.CheckBoxFor(Function(model) model.ArbitraryName2)
Контроллер
<HttpPost()>
Function Index(answer As Model) As ActionResult
' answer is Nothing
End Function
(Используя ASP.NET MVC 3)
Название вашего входного параметра не должно быть равным некоторым имени свойства объекта. Помните, что все данные, поступающие как массив имени -> значение и привязка по умолчанию, используют имена для создания отношений.
У меня возникло такое поведение, перемещая два свойства от вершины класса, чтобы дальше. Я до сих пор не могу понять, почему это остановило привязку третьего свойства от работы (так что это не является решением, как «остерегайтесь»), но я повторял изменение несколько раз, и каждый раз, когда привязка уходила от работая, чтобы не работать. Я также обнаружил, что после внесения этого изменения мне иногда приходилось «очистить» решение для привязки, чтобы начать работу снова.