HTML5-Daten- * mit asp.net mvc TextboxFür HTML-Attribute


Antworten:


417

Sie könnten Unterstrich ( _) verwenden und der Helfer ist intelligent genug, um den Rest zu erledigen:

@Html.TextBoxFor(
    model => model.Country.CountryName, 
    new { data_url = Url.Action("CountryContains", "Geo") }
)

Und für diejenigen, die dasselbe in Versionen vor ASP.NET MVC 3 erreichen möchten, könnten sie:

<%= Html.TextBoxFor(
    model => model.Country.CountryName, 
    new Dictionary<string, object> { 
        { "data-url", Url.Action("CountryContains", "Geo") } 
    }
) %>

8
Ist dieses Verhalten irgendwo angegeben :)?
Rookian

5
@ Ryan, nein, tut es nicht, weil es keinen Sinn macht, dafür zu arbeiten EditorFor. Der EditorFor-Helfer wird verwendet, um eine benutzerdefinierte HTML-Vorlage zu rendern, die dem angegebenen Typ entspricht. Eine Vorlage kann viele Elemente enthalten, daher ist es nicht wirklich sinnvoll, über Attribute in einer Vorlage zu sprechen. Natürlich können Sie jederzeit eine benutzerdefinierte Vorlage schreiben, die mit dem additionalViewDataParameter arbeitet, der an eine Editorvorlage übergeben werden kann, und diese einfach als Attribute in das entsprechende Eingabefeld ausgeben.
Darin Dimitrov

2
Nur um klar zu sein, hat das resultierende Markup einen Unterstrich und keinen Bindestrich. Der Satz "Sie könnten einen Unterstrich (_) verwenden und der Helfer ist intelligent genug, um den Rest zu erledigen", insbesondere der Teil über die angebliche Intelligenz ließ mich glauben, dass er automatisch konvertiert werden würde - aber das tut er nicht. HTML5 unterstützt -.
Alan Macdonald

2
@AlanMacdonald the _wird -in ältere (mittlere?) Versionen von MVC konvertiert . Es kann sein, dass die neuesten Versionen es gelöscht haben, aber ich verwende es erfolgreich auf MVC 3 und 4.
Brichins

4
@AlanMacdonald (und andere lesen), das _wird auch -in MVC 5 konvertiert . Ich benutze es erfolgreich in einem Projekt, an dem ich gerade arbeite, das MVC 5 verwendet.
Amy Barrett
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.