是否有創建與連字符屬性的元素時,而不是使用一個更好的語法:聯用HTML與asp.net的MVC屬性
<%= Html.TextBox ("name", value, new Dictionary<string, object> { {"data-foo", "bar"} }) %>
縱觀HTML規範的標準提案HTML 5和WIA ARIA它似乎HTML屬性中的連字符正在計劃中,因爲某種簡單的名稱間距會更常見。
E.g. HTML 5建議自定義屬性的前綴爲data-
,WIA ARIA對所有WIA ARIA屬性都使用aria-
前綴。
在ASP.NET MVC中使用HTML助手(例如<%= Html.TextBox("name", value, new { attribute = attributeValue }) %>
)時,匿名對象將轉換爲字典。
不幸的是在C#中名稱中不支持連字符,所以唯一的選擇是創建一個字典。其語法非常冗長,有沒有人看到更好的替代方法或改變ASP.NET MVC的HTML擴展功能的簡單方法,而無需重寫整個擴展?
+1剛剛救了我寫一些真正難看的代碼。謝謝! – 2013-04-04 21:40:33
我發現了一個類似的問題幾個SO問題,這是最好的答案。 – user2780436 2015-01-01 20:44:10
你可以添加你的語句的原因**下劃線在HTML屬性**中無效。至少[html 4.01州](http://www.w3.org/TR/html401/intro/sgmltut.html#didx-attribute):_屬性值可能只包含字母(az和AZ),數字(0- 9),連字符(ASCII小數點45),句號(ASCII小數點46),下劃線(ASCII小數點95)和冒號(ASCII小數點58)_, – surfmuggle 2015-07-15 19:12:58