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:
Vorschläge für eine Problemumgehung? Oder ist es in MVC4 behoben?