我正在使用 MVC3 WebGrid,并希望将表单“data-xxx”的自定义属性添加到<table>
由WebGrid.GetHtml()
.
我试图这样做如下:
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 中修复?