Asp.net mvc ile tirelenmiş html öznitelikleri


111

Kullanmak yerine tireli özniteliklere sahip öğeler oluştururken daha güzel bir sözdizimi var mı:

<%= Html.TextBox ("name", value, new Dictionary<string, object> { {"data-foo", "bar"} }) %>

Önerilen HTML 5 ve WIA ARIA standartları için HTML özelliklerine bakıldığında, HTML özniteliklerindeki kısa çizgilerin bir tür basit ad aralığı olarak daha yaygın olması planlanıyor gibi görünüyor.

Örneğin, HTML 5, özel özniteliklerin data-önünde yer aldığını ve WIA ARIA'nın aria-tüm WIA ARIA öznitelikleri için öneki kullandığını önerir .

<%= Html.TextBox("name", value, new { attribute = attributeValue }) %>Anonim nesne gibi ASP.NET MVC'de HTML yardımcıları kullanıldığında sözlüğe dönüştürülür.

Maalesef C # 'da adlarda tire desteği yoktur, bu nedenle tek alternatif bir sözlük oluşturmaktır. Çok ayrıntılı olan sözdizimi, ASP.NET MVC'nin HTML uzantılarının işlevselliğini tüm uzantıyı yeniden yazmak zorunda kalmadan değiştirmenin daha güzel bir alternatifini veya basit bir yolunu gören oldu mu?

Yanıtlar:


202

Veri özniteliği adında bir alt çizgi kullanın ve sizin için sihirli bir şekilde onu kısa çizgiye dönüştürür. Alt çizgiler html öznitelik adlarında geçerli olmadığından, alt çizgi yerine kısa çizgi istediğinizi bilir.

<%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>

2
Birkaç SO sorusunda benzer bir problem buldum ve bu en iyi cevap.
user2780436

Eğer beyanı nedenini eklemek Could çizgi html nitelikleri geçerli değil . En az html 4.01 durumu : Öznitelik değeri yalnızca harfler (az ve AZ), rakamlar (0-9), kısa çizgiler (ASCII ondalık 45), noktalar (ASCII ondalık 46), alt çizgiler (ASCII ondalık 95) ve iki nokta üst üste ( ASCII ondalık 58) ,
surfmuggle

@threeFourOneSixOneThree alıntınız öznitelik değerine atıfta bulunuyor, ancak bu soruda öznitelik adlarına atıfta bulunuyoruz.
ED-209

@threeFourOneSixOneThree Cevabımın sonunu 'altçizgiler html öznitelik adlarında geçerli değil' olarak değiştirdim
ED-209

19

ActionLink htmlAttributes'da verilen yanıt , kısa çizgi yerine alt çizgi kullanılmasını önerir. MVC.Net'in, sayfayı tarayıcıya gönderirken altçizgiler yerine kısa çizgiler yayması beklenir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.