我正在尝试在我的 ASP.NET MVC 1 项目中使用HTML5 数据属性。(我是 C# 和 ASP.NET MVC 新手。)
<%= Html.ActionLink("芦 Previous", "Search", new { keyword = Model.Keyword, page = Model.currPage - 1}, new { @class = "prev", data-details = "Some Details" })%>
上述 htmlAttributes 中的“数据详细信息”给出以下错误:
CS0746: Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.
它在我使用 data_details 时有效,但我想它需要按照规范以“data-”开头。
我的问题:
更新:MVC 3 和更新版本对此具有内置支持。 有关推荐的解决方案,请参阅下面的 JohnnyO 高度赞成的答案。
我认为没有任何直接的帮手可以实现这一目标,但我确实有两个想法供您尝试:
// 1: pass dictionary instead of anonymous object <%= Html.ActionLink( "back", "Search", new { keyword = Model.Keyword, page = Model.currPage - 1}, new Dictionary<string,Object> { {"class","prev"}, {"data-details","yada"} } )%> // 2: pass custom type decorated with descriptor attributes public class CustomArgs { public CustomArgs( string className, string dataDetails ) { ... } [DisplayName("class")] public string Class { get; set; } [DisplayName("data-details")] public string DataDetails { get; set; } } <%= Html.ActionLink( "back", "Search", new { keyword = Model.Keyword, page = Model.currPage - 1}, new CustomArgs( "prev", "yada" ) )%>
只是想法,没有测试过。