ASP.NET MVC Html.TextBoxFor отображает значение, отличное от <%: Model.value%> - PullRequest
6 голосов
/ 03 сентября 2010

Это очень странно, и я не знаю почему. У меня есть ViewModel, которые возвращают какое-то значение для моего объекта, при рендеринге они имеют разные значения, но они указывают на одно и то же свойство:

<%: Model.myProperty %>

Это возвращает «25», это то, что я установил для свойства. Но когда он отображается как текстовое поле, он возвращает «0» в качестве значения для моего текстового поля!

<%: Html.TextBoxFor(f => f.myProperty) %>

Есть идеи, почему? Свойство имеет десятичный тип. Спасибо.

Ответы [ 3 ]

15 голосов
/ 12 января 2011

Попробуйте ModelState.Clear () перед вызовом View или PartialView и передачей модели.

Эта проблема возникла у меня после создания сообщения.Это потому, что помощники HTML получают свое значение из ModelState перед проверкой фактической модели.Похоже, это следует поменять местами ИМО.

1 голос
/ 07 июля 2013

Имея ту же самую проблему, я прочитал этот пост сегодня (и это решило мою проблему) и решил исследовать больше относительно этого. Итак, вот что я нашел:

«ASP.NET MVC предполагает, что если вы визуализируете представление в ответ на HTTP POST и используете Html Helpers, то вы, скорее всего, будете повторно отображать форму, которая не прошла проверку. Поэтому Html-помощники фактически проверяют в ModelState значение, отображаемое в поле, перед тем, как искать в модели ». Автор: Simon J Ince

Если вы хотите узнать больше об этом, перейдите по ссылке ниже: http://blogs.msdn.com/b/simonince/archive/2010/05/05/asp-net-mvc-s-html-helpers-render-the-wrong-value.aspx

Увидимся.

0 голосов
/ 03 сентября 2010

Плохо, похоже, проблема в HTML, где у меня есть представление, отображаемое из нескольких частичных представлений, и некоторые идентификаторы для ввода одинаковы (я скрываю представление редактирования и отображаю основное представление с помощью jQuery ), каким-то образом это текстовое поле получает значение из представления, которое было скрыто !!! :)

Спасибо всем за внимание.

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