问题在ASP.NET MVC中设置包含连字符的html属性

问题在ASP.NET MVC中设置包含连字符的html属性

问题描述:

我已经定义了一个自定义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"})。因为这个场景有一个解决方案,所以我希望我的当前问题可能有一个解决方案(前缀为'@'不起作用)。

在此先感谢。

尝试使用应该由标准的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

How to use dashes in HTML-5 data-* attributes in ASP.NET MVC < - 你将在这里找到你的答案

+0

嗯,你也许我的问题归类为重复。我搜查了但找不到那一个。我发现所有关于在HTML/CSS中使用' - ','_'或骆驼案例的讨论。我不觉得Dictionary 方法真的很愚蠢。 – 2011-02-28 08:36:46