Подтвердить что ты не робот

ASP.NET MVC3 - атрибут Html.TextBoxFor и автофокуса

Как я могу сгенерировать следующий элемент input, используя стандартные HTML-помощники и механизм просмотра Razor:

<input id="Foo" name="Foo" type="text" autofocus />

Можно ли использовать стандартный HTML-помощник или мне нужно написать свой собственный?

Любая помощь будет принята с благодарностью!

4b9b3361

Ответ 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 }).