【发布时间】:2012-10-05 16:38:32
【问题描述】:
我正在使用 MVC3 WebGrid,并希望将“data-xxx”形式的自定义属性添加到由WebGrid.GetHtml() 呈现的<table> 元素。
我尝试这样做:
grid.GetHtml(...
htmlAttributes: new { data_xxx = "value" }
);
然而这呈现为:
<table ... data_xxx="value">
而不是预期的:
<table ... data-xxx="value">
即与其他 MVC 帮助程序不同,它不会用连字符替换属性名称中的下划线。
在对 Reflector 进行了一番探索之后,似乎:
WebGrid.GetHtml()调用System.Web.WebPages.Html.ObjectToDictionary将匿名属性对象转换为字典。与其他助手使用的方法System.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes不同,它不会将“_”替换为“-”。-
与大多数其他 MVC 帮助程序不同,
李>WebGrid.GetHtml()没有采用IDictionary<string, object>的重载,因此我无法通过以这种方式指定属性来解决该错误。
这对我来说似乎是一个错误,我已将其提交给 Connect:
对解决方法有什么建议吗?还是在 MVC4 中修复了?
【问题讨论】:
标签: .net asp.net-mvc-3 webgrid