Gibt es eine schönere Syntax, wenn Elemente mit Bindestrichen Attributen anstelle der Verwendung zu schaffen: esHyphenated HTML-Attribute mit asp.net MVC
<%= Html.TextBox ("name", value, new Dictionary<string, object> { {"data-foo", "bar"} }) %>
Mit Blick auf den HTML-Spezifikationen für den vorgeschlagenen Standards HTML 5 und WIA ARIA Es scheint, dass Bindestriche in HTML-Attributen als eine Art einfacher Namensabstand gebräuchlicher sind.
z. HTML 5 schlägt vor, dass benutzerdefinierte Attribute das Präfix data-
haben und WIA ARIA das Präfix aria-
für alle WIA ARIA-Attribute verwendet.
Bei der Verwendung von HTML-Helfern in ASP.NET MVC wie <%= Html.TextBox("name", value, new { attribute = attributeValue }) %>
wird das anonyme Objekt in ein Wörterbuch konvertiert.
Leider in C# gibt es keine Unterstützung für Bindestriche in Namen, so dass die einzige Alternative ist, ein Wörterbuch zu erstellen. Die Syntax für die ist sehr ausführlich, hat jemand eine schönere Alternative oder eine einfache Möglichkeit zur Änderung der Funktionalität der HTML-Erweiterungen von ASP.NET MVC gesehen, ohne die gesamte Erweiterung neu schreiben zu müssen?
+1 Ich habe mich gerade davor bewahrt, wirklich hässlichen Code zu schreiben. Vielen Dank! –
Ich fand ein ähnliches Problem mehrere SO Fragen, und das ist die beste Antwort. – user2780436
Könnten Sie den Grund für Ihre Aussage hinzufügen ** Unterstriche sind in HTML-Attributen nicht gültig **. Mindestens [html 4.01 states] (http://www.w3.org/TR/html401/intro/sgmltut.html#didx-attribute): _Der Attributwert darf nur Buchstaben (az und AZ), Ziffern (0- 9), Bindestriche (ASCII Dezimal 45), Punkte (ASCII Dezimal 46), Unterstriche (ASCII Dezimal 95) und Doppelpunkte (ASCII Dezimal 58) _, – surfmuggle