Проблема обновления Asp.NET MVC Html.TextBox - PullRequest
9 голосов
/ 06 апреля 2010

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

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

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

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

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

Ответы [ 2 ]

7 голосов
/ 06 апреля 2010

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

<input 
    type="text" 
    name="Zip" 
    value="<%= Html.Encode(Model.Zip) %>" 
    class="txt" 
    id="zip" 
    tabindex="1" 
/>
2 голосов
/ 10 февраля 2012

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

...