【问题标题】:Add custom attributes to table rendered by WebGrid向 WebGrid 呈现的表格添加自定义属性
【发布时间】: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 进行了一番探索之后,似乎:

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

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

    李>

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

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

对解决方法有什么建议吗?还是在 MVC4 中修复了?

【问题讨论】:

    标签: .net asp.net-mvc-3 webgrid


    【解决方案1】:

    感谢您报告此问题:

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

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

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

    你可以试试nightly bits

    【讨论】:

      猜你喜欢
      • 2011-10-25
      • 2015-03-09
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多