ASP.NET MVC3 - атрибут Html.TextBoxFor и автофокуса
Как я могу сгенерировать следующий элемент input
, используя стандартные HTML-помощники и механизм просмотра Razor:
<input id="Foo" name="Foo" type="text" autofocus />
Можно ли использовать стандартный HTML-помощник или мне нужно написать свой собственный?
Любая помощь будет принята с благодарностью!
Ответы
Ответ 1
Вы можете передать дополнительные атрибуты HTML методу TextBoxFor:
@Html.TextBoxFor(m => m.Foo, new { autofocus="autofocus"})
Edit:
Вы можете получить только autofocus=""
с помощью:
@Html.TextBoxFor(m => m.Foo, new { autofocus=""})
Все встроенные помощники используют TagBuilder класс MergeAttribute и поддерживает только атрибуты в следующем формате: key="value"
.
Поэтому, если вам нужно только autofocus
, вам нужно написать свой собственный помощник с помощью настраиваемого html-конструктора.
Ответ 2
Я думаю, что autofocus = "автофокус" также действителен: http://www.w3schools.com/html5/att_input_autofocus.asp, чтобы вы могли использовать аргумент htmlAttributes следующим образом:
@Html.TextBox("Foo", null, new { autofocus = "autofocus" })
ИЗМЕНИТЬ
Я думаю, вы не можете использовать стандартные HTML-помощники, если вы действительно хотите автофокусировку, вам нужно будет сделать что-то вроде этого:
@Html.Raw("<input id=\"Foo\" name=\"Foo\" type=\"text\" autofocus />")
Ответ 3
Не уверен, что изменилось для MVC 4 в отношении этого сценария, но в итоге я использовал @Html.TextBoxFor(x => x.Foo, new { autofocus = true })
.