Html5 data- * з asp.net mvc TextboxДля атрибутів html


244

Як додати data-*атрибути html за допомогою TextboxFor?

Ось що я зараз маю:

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

Як бачите, -тут виникають проблеми data-url. Який шлях до цього?


можливий дублікат атрибутів Hyphezed html з asp.net mvc
ED-209

Відповіді:


417

Ви можете використати підкреслення ( _), і помічник досить розумний, щоб зробити все інше:

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

А для тих, хто хоче досягти того ж у попередніх версіях ASP.NET MVC 3, вони могли б:

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

8
Чи десь вказана така поведінка :)?
Rookian

5
@Ryan, ні, це не так, бо не має сенсу працювати EditorFor. Помічник EditorFor використовується для візуалізації користувальницького шаблону HTML, який відповідає заданому типу. Шаблон може містити багато елементів, тому говорити про атрибути в шаблоні насправді не має сенсу. Звичайно, ви завжди можете написати спеціальний шаблон, який працює з additionalViewDataпараметром, який може бути переданий в шаблон редактора, і просто вивести їх у вигляді атрибутів у відповідне поле введення.
Дарин Димитров

2
Просто, щоб зрозуміти, в результаті розмітки є підкреслення, а не дефіс. Речення "Ви можете використовувати підкреслення (_), і помічник достатньо розумний, щоб зробити все інше", зокрема, трохи про передбачуваний інтелект змусив мене повірити, що він автоматично перетвориться на це, але це не так. Підтримка HTML5 -.
Алан Макдональд

2
@AlanMacdonald the _перетворюється на -старіші (середні?) Версії MVC. Можливо, найновіша версія (-ів) її відкинула, але я її успішно використовую на MVC 3 та 4.
brichins

4
@AlanMacdonald (та інші, хто читає), також _перетворюється -в MVC 5. Я успішно використовую його в проекті, над яким я зараз працюю, в якому використовується MVC 5.
Емі Барретт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.