2010-04-06 4 views
9

У меня проблема с asp.net mvc 2 и html.textboxfor helper. я использую код последующего в форме:Проблема обновления Asp.NET MVC Html.TextBox

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

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

образец: пользователя запись почтовый индекс: 12345 моего класса проверки, исправленное дэ ЗИПА: 12346 моей модели содержит новые почтовый: 123456, на гуе я вижу только 12345

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

ответ

7

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

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

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

+0

Это обходное решение работает для меня. Есть ли побочные эффекты? – chenz

Смежные вопросы