1

我正在使用 MVC3 WebGrid,并希望将表单“data-xxx”的自定义属性添加到<table>WebGrid.GetHtml().

我试图这样做如下:

grid.GetHtml(...
    htmlAttributes: new { data_xxx = "value" }
);

然而,这呈现为:

<table ... data_xxx="value">

而不是预期的:

<table ... data-xxx="value">

即,与其他 MVC 助手不同,它不会用连字符替换属性名称中的下划线。

在对 Reflector 进行了一番探索之后,似乎:

  1. WebGrid.GetHtml()调用System.Web.WebPages.Html.ObjectToDictionary将匿名属性对象转换为字典。与System.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes其他助手使用的方法不同,这不会将“_”替换为“-”。

  2. 与大多数其他 MVC 帮助程序不同,WebGrid.GetHtml()它没有采用 的重载IDictionary<string, object>,因此我无法通过以这种方式指定属性来解决该错误。

这对我来说似乎是一个错误,我已将其提交给 Connect:

http://connect.microsoft.com/VisualStudio/feedback/details/767456/webgrid-gethtml-helper-does-not-allow-data-attributes-to-be-set

任何解决方法的建议?还是在 MVC4 中修复?

4

1 回答 1

2

感谢您报告此问题:

昨天在 CodePlex 中通过解决问题 610 和 575 解决了这个问题。

https://aspnetwebstack.codeplex.com/workitem/610

https://aspnetwebstack.codeplex.com/workitem/575

你可以试试夜间位

于 2013-04-20T00:40:31.370 回答