Проблема обновления Asp.NET MVC Html.TextBox

у меня проблема с asp.net mvc 2 и помощником html.textboxfor. я использую следующий код в форме:

<%= Html.TextBoxFor(model => model.Zip, new { @class = "txt", id = "zip", tabindex = 1 })%>

когда пользователь отправляет форму, я проверяю почтовый индекс, когда почтовый индекс недействителен, мы устанавливаем исправленный почтовый индекс. у моей модели исправлен zip, сгенерированный html код из asp содержит старое значение zip.

пример: пользователь пишет zip: 12345 мой класс проверки, исправил zip на: 12346 моя модель содержит новый zip: 123456, в графическом интерфейсе я вижу только 12345

в чем проблема?


person martin    schedule 06.04.2010    source источник


Ответы (2)


Вы не можете изменить значения в своем действии контроллера, потому что помощник всегда будет использовать значения POSTed при создании текстового поля. Это сделано по дизайну, и если вы хотите обойти это, вам придется написать свой собственный помощник или создать текстовое поле вручную:

<input 
    type="text" 
    name="Zip" 
    value="<%= Html.Encode(Model.Zip) %>" 
    class="txt" 
    id="zip" 
    tabindex="1" 
/>
person Darin Dimitrov    schedule 06.04.2010

Очистите состояние модели с помощью ModelState.Clear(), обновите свой объект и затем верните его.

person Gokulnath    schedule 10.02.2012