Fügen Sie der von WebGrid gerenderten Tabelle benutzerdefinierte Attribute hinzu

Ich verwende ein MVC3-WebGrid und möchte benutzerdefinierte Attribute in der Form "data-xxx" hinzufügen<table> Element gerendert vonWebGrid.GetHtml().

Ich habe versucht, dies wie folgt zu tun:

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

Dies ergibt jedoch Folgendes:

<table ... data_xxx="value">

anstelle der erwarteten:

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

Das heißt Im Gegensatz zu anderen MVC-Hilfsprogrammen wird der Unterstrich im Eigenschaftsnamen nicht durch einen Bindestrich ersetzt.

Nach einigem Hin und Her mit Reflector sieht es so aus:

WebGrid.GetHtml() AnrufeSystem.Web.WebPages.Html.ObjectToDictionary Konvertieren des anonymen Attributobjekts in ein Wörterbuch. Im Gegensatz zu der MethodeSystem.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes Wird von anderen Helfern verwendet, ersetzt dies "_" nicht durch "-".

Im Gegensatz zu den meisten anderen MVC-HelfernWebGrid.GetHtml() hat keine Überlastung, die eineIDictionary<string, object>Daher kann ich den Fehler nicht umgehen, indem ich die Attribute auf diese Weise spezifiziere.

Dies sieht für mich nach einem Fehler aus und ich habe ihn an Connect gesendet:

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

Vorschläge für eine Problemumgehung? Oder ist es in MVC4 behoben?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage