2010-04-06 18 views
9

asp.net mvc 2 ve html.textboxfor yardımcısı ile ilgili bir sorunum var. i formda takip kodu kullanın:Asp.NET MVC Html.TextBox yenileme sorunu

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

kullanıcı formu gönderdiğinizde, ben posta kodu doğrulamak, zip biz düzeltilmiş zip set geçersiz olduğunda. modelimin düzeltilmiş bir zip'i var, asp'ten oluşturulan html kodu eski zip değerini içeriyor.

örnek: kullanıcı yazma fermuar: ben sadece 12345

sorun nedir bkz gui'de üzerine, 123456: 12346 maketimin yeni zip içerir: 12345 benim doğrulama sınıf, teh zip düzeltildi?

cevap

7

Denetleyici eyleminizdeki değerleri değiştiremezsiniz; çünkü yardımcı, metin kutusunu oluştururken her zaman POSTED değerlerini kullanır. Bu tasarım gereğidir ve buna bir çözüm bulmak istiyorsanız kendi yardımcı yazma veya el metin kutusu oluşturmak gerekir:

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

Temizle(), sizin nesnesini güncellemek ve daha sonra geri ModelState.Clear kullanarak ModelState.

+0

Bu geçici çözüm benim için çalışıyor. Herhangi bir yan etkisi var mı? – chenz