Dane HTML5 * z asp.net mvc Textbox Dla atrybutów HTML


Odpowiedzi:


417

Możesz użyć podkreślenia ( _), a pomocnik jest wystarczająco inteligentny, aby wykonać resztę:

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

A dla tych, którzy chcą osiągnąć to samo w wersjach wcześniejszych niż ASP.NET MVC 3, mogliby:

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

8
Czy to zachowanie jest określone gdziekolwiek :)?
Rookian

5
@ Ryan, nie, nie ma, bo nie ma sensu pracować EditorFor. Pomocnik EditorFor służy do renderowania niestandardowego szablonu HTML, który odpowiada podanemu typowi. Szablon może zawierać wiele elementów, więc mówienie o atrybutach w szablonie tak naprawdę nie ma sensu. Oczywiście zawsze możesz napisać szablon niestandardowy, który działa z additionalViewDataparametrem, który można przekazać do szablonu edytora i po prostu wyprowadzić je jako atrybuty w odpowiednim polu wejściowym.
Darin Dimitrov

2
Dla jasności wynikowy znacznik ma podkreślnik, a nie łącznik. Zdanie „Możesz użyć znaku podkreślenia (_), a pomocnik jest wystarczająco inteligentny, aby wykonać resztę”, a konkretnie fragment o domniemanej inteligencji sprawił, że uwierzyłem, że zmieni się automatycznie - ale tak nie jest. Obsługa HTML5 -.
Alan Macdonald

2
@AlanMacdonald _jest konwertowany na -starsze (środkowe?) Wersje MVC. Możliwe, że najnowsze wersje go
upuściły

4
@AlanMacdonald (i inni czytający), _jest również konwertowany do -MVC 5. Z powodzeniem używam go w projekcie, nad którym obecnie pracuję, który wykorzystuje MVC 5.
Amy Barrett,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.