Bardzo fajną sprawą w MVC jest możliwość generowania atrybutów elementów za pomocą anonimowego typu:

@Html.TextBoxFor(model => model.Name, new { style = "width: 300px" })

Jednak identyfikator w C# nie umożliwia posiadania myślnika w nazwie. Sprawa wydawałaby się przegrana, gdyby nie to, że metoda HtmlHelper.AnonymousObjectToHtmlAttributes, która jest wykorzystywana podczas renderowania HTML wszędzie tam gdzie do extension method przekazujemy anonimowy typ jako atrybuty elementu.

Metoda ta, podmienia podkreślenie _ na myślnik.

Teraz jeżeli chcemy wykorzystać atrybut na przykład data-tooltip wystarczy, że zrobimy tak:

@Html.TextBoxFor(model => model.Name, new { data_tooltip = "nasz atrybut data-tooltip", style = "width: 300px" })

I nasz element będzie zawierał nasz atrybut :) sweet

attr

4 KOMENTARZE

  1. Łohoho! No co za zajebisty tip, a ja kurde zawsze przerzucalem się w takiej sytuacji na brzydkie Dictionary<> (albo trochę ładniejsze, ale nadal nie-aż-tak, Hash<> z MvcContrib). Dzięki!

Comments are closed.