Html5 data-* with asp.net mvc TextboxFor html属性
Posted
技术标签:
【中文标题】Html5 data-* with asp.net mvc TextboxFor html属性【英文标题】:Html5 data-* with asp.net mvc TextboxFor html attributes 【发布时间】:2011-06-18 03:46:53 【问题描述】:如何使用 TextboxFor 添加data-*
html 属性?
这是我目前拥有的:
@Html.TextBoxFor(model => model.Country.CountryName, new data-url= Url.Action("CountryContains", "Geo") )
如您所见,-
在data-url
引起了问题。有什么办法吗?
【问题讨论】:
Hyphenated html attributes with asp.net mvc 的可能重复项 【参考方案1】:您可以使用下划线 (_
),助手足够聪明,可以完成剩下的工作:
@Html.TextBoxFor(
model => model.Country.CountryName,
new data_url = Url.Action("CountryContains", "Geo")
)
对于那些希望在 ASP.NET MVC 3 之前的版本中实现相同功能的人,他们可以:
<%= Html.TextBoxFor(
model => model.Country.CountryName,
new Dictionary<string, object>
"data-url", Url.Action("CountryContains", "Geo")
) %>
【讨论】:
这种行为是否在任何地方指定:) ? @Ryan,不,不是因为为EditorFor
工作没有意义。 EditorFor 帮助器用于呈现与给定类型对应的自定义 HTML 模板。一个模板可以包含许多元素,所以谈论模板中的属性并没有什么意义。当然,您始终可以编写一个与 additionalViewData
参数一起使用的自定义模板,该参数可以传递给编辑器模板,并简单地将它们作为相应输入字段的属性输出。
为了清楚起见,生成的标记有一个下划线而不是连字符。句子“你可以使用下划线 (_) 并且助手足够聪明,可以完成剩下的工作”,特别是关于所谓的智能的一点让我相信它会自动转换为 - 但事实并非如此。 HTML5 支持 -.
@AlanMacdonald _
在 MVC 的旧(中间?)版本中转换为 -
。可能是最新版本已删除它,但我在 MVC 3 和 4 上成功使用它。
@AlanMacdonald(和其他人阅读),_
在 MVC 5 中也转换为 -
。我在我目前正在从事的项目中成功使用它,该项目使用 MVC 5。以上是关于Html5 data-* with asp.net mvc TextboxFor html属性的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET MVC 中的 HTML-5 data-* 属性中使用破折号
ASP.NET postback with JavaScript