SORU
2 Kasım 2011, ÇARŞAMBA


MVC 3: Koşullu HtmlHelpers ile Disabled Özniteliği Ekleme

3 web ASP.NET MVC bir uygulama var ve bu gibi bir görünüm sayfası HtmlHelper sınıfını kullanarak bir onay kutusu eklemek, dedi

@Html.CheckBox("CheckBox1", true, new { @class = "Class1" })

Yapmak istediğim koşullu görünüm durumu özelliği dayalı disabled özniteliği ekleyin. Temel olarak aşağıdaki... ideal olacaktır

@Html.CheckBox("CheckBox1", true, new { @class = "Class1", @disabled = Model.ReadOnly })

Ne yazık ki, engelli niteliği doğası gereği, bu yüzden çalışmazherhangi birdeğeri devre dışı öznitelik atanmış (hatta "") false true olarak tercüme edilir.

Zaten bir kaç çözüm bu sorun, yuvarlak, asıl soru bunu nasıl yapabilirim değil yani almak için çok düşündüm. Ama, orada istediğiniz yöntemi gibi basit bir yol üzerinde değil mi? ya da aşağıdakilerden birini başvurmak zorunda mıyım..?

Ben ne bileyim

  1. Eğer/else deyimi oluşturmak ve Html.CheckBox farklı satırları yazmak (okunabilirlik ve AT ile mark Olası uyarı - emin değil iyi)

  2. HtmlHelper sınıfı ve el etiketi daha iyi şartlı öznitelikleri (kısa kod tutar, ama tutarsızlık ekler) için izin yazma atlayın

  3. Bir götüren özel bir yardımcı oluştur "engelli" parametre (en temiz çözüm, ama istenmeyen ekstra yöntemler gerektirir - en iyi seçenek şimdiye kadar olsa muhtemelen)

CEVAP
2 Kasım 2011, ÇARŞAMBA


Bu bir yerde view/yardımcıları olarak tanımlayın

@functions {
 object getHtmlAttributes (bool ReadOnly, string CssClass) 
 {
     if (ReadOnly) {
         return new { @class = CssClass, @readonly = "readonly" };
     }
     return new { @class = CssClass };
 }
}

O zaman kullanın :

@Html.TextBox("name", "value", @getHtmlAttributes(Model.ReadOnly, "test"))

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • BASS212M

    BASS212M

    15 Temmuz 2009
  • Munchkin the Teddy Bear

    Munchkin the

    30 EYLÜL 2011