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

  • eyes4beautee

    eyes4beautee

    17 HAZİRAN 2011
  • UnboxTechnology

    UnboxTechnol

    20 Ocak 2011
  • Visual Life

    Visual Life

    3 Temmuz 2006