2011-02-28 69 views
16

我已經定義了一個自定義html屬性「data-something-something」。在我看來,我使用Html擴展方法來創建一個文本框。其中一個參數是匿名object HtmlAttributes。我想通過這個值:new { data-something-something = "value" }。但是,data-something-something由於連字符不能被.NET識別爲屬性名稱。問題在ASP.NET MVC中設置包含連字符的html屬性

現在我已將其更改爲dataSomethingSomething,但我想根據HTML 5標準定義我的自定義屬性(即以'data-'爲前綴)。

在嘗試對類屬性執行new { class = "class-name"}之前,我有類似的問題。對於這種情況,我發現我可以用'@'符號加class作爲前綴(即new { @class = "class-name"})。因爲這個場景有一個解決方案,所以我希望我的當前問題可能有一個解決方案(前綴爲'@'不起作用)。

在此先感謝。

回答

29

嘗試使用應該由標準的HTML傭工被自動轉換成破折號下劃線:

new { data_something_something = "value" } 
+0

Neato!我希望有這樣的事情。 – 2011-02-28 08:33:38

+0

@Matthijs Wessels,你使用的是一個自定義HTML助手嗎?如果是,請顯示你的幫手代碼和用法。這絕對適用於內置的幫助程序。試試看:'@ Html.TextBoxFor(x => x.Foo,new {data_something_something =「value」})'。 – 2011-02-28 09:53:52

+0

我只使用內置的幫助程序。已經嘗試過它,它工作:) – 2011-02-28 13:01:08

2

How to use dashes in HTML-5 data-* attributes in ASP.NET MVC < - 你將在這裏找到你的答案

+0

嗯,你也許我的問題歸類爲重複。我搜查了但找不到那一個。我發現所有關於在HTML/CSS中使用' - ','_'或駱駝案例的討論。我不覺得Dictionary 方法真的很愚蠢。 – 2011-02-28 08:36:46