SORU
17 Ocak 2011, PAZARTESİ


ASP.Net MVC Html.HiddenFor yanlış değer

Benim projede MVC 3 kullanıyorum, ve çok garip bir davranış görüyorum.

Benim Model üzerinde belirli bir değer için gizli bir alan oluşturmak için çalışıyorum, sorun nedense değeri sahada set Modeli değerine karşılık gelmiyor.

örneğin

Bir test sadece bu kod var:

<%:Html.Hidden("Step2", Model.Step) %>
<%:Html.HiddenFor(m => m.Step) %>

Hem gizli alanda aynı değere sahip olduğunu düşünürdüm. Benim yaptığım iş, değeri 1 olarak ayarlayın Manzarası ekran ilk kez, ve daha sonra teslim sonra ben 1 Model alanın değerini artırmak.

Yani, her iki denetim değeri 1, ama değerleri işlenen ikinci zaman yeni bir sayfa oluştur ilk kez bu

<input id="Step2" name="Step2" type="hidden" value="2" />
<input id="Step" name="Step" type="hidden" value="1" />

Gördüğünüz gibi, ilk değer doğru ancak ikinci değer Manzarası ekran ilk defa olarak aynı gibi görünüyor.

Neyi kaçırıyorum? Html yardımcıları İçin *bir şekilde değerleri önbelleğe? Nasıl bu önbelleğe alma devre dışı bırakabilir miyim?

Yardımlarınız için teşekkürler.

CEVAP
17 Ocak 2011, PAZARTESİ


Bu normal ve HTML yardımcıları iş nasıl olur. Onlar ilk POST isteğini değerini ve ondan sonra model değeri kullanın. Bu eğer bir POST isteği içinde aynı değişken varsa denetleyicisi eylem modeli değerini değiştirmek bile değişiklik yok sayılır ve Yazan değer kullanılacaktır anlamına gelir.

Bir olası geçici çözüm değeri değiştirmek için çalışıyor: denetleyici eylem modeli devletten bu değeri kaldırmaktır

// remove the Step variable from the model state 
// if you want the changes in the model to be
// taken into account
ModelState.Remove("Step");
model.Step = 2;

Başka bir olasılık her zaman modelin değeri kullanın ve POST değerleri göz ardı edecek özel bir HTML yardımcı yazmaktır.

Ve henüz başka bir olasılık:

<input type="hidden" name="Step" value="<%: Model.Step %>" />

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • chrmoe

    chrmoe

    7 Kasım 2006
  • Floortile83

    Floortile83

    16 Ocak 2010
  • Howcast

    Howcast

    4 EKİM 2007