ASP.NET MVC3 - Html.TextBoxFor和autofocus属性

时间:2011-12-16 10:46:56

标签: asp.net-mvc-3 razor

如何使用标准HTML帮助程序和Razor视图引擎生成以下input元素:

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

我可以使用标准的HTML帮助程序,还是必须自己编写?

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:44)

您可以将其他HTML属性传递给TextBoxFor方法:

@Html.TextBoxFor(m => m.Foo, new { autofocus="autofocus"})

编辑:
您只能autofocus=""获得:

@Html.TextBoxFor(m => m.Foo, new { autofocus=""})

所有内置帮助程序都在内部使用TagBuilder类的MergeAttribute方法,并且它仅支持以下格式的属性:key="value"
因此,如果您只需要autofocus,则需要使用自定义html构建器编写自己的帮助程序。

答案 1 :(得分:7)

我认为autofocus =“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 />")

答案 2 :(得分:7)

不确定MVC 4在这种情况下还有哪些变化,但我最终使用了@Html.TextBoxFor(x => x.Foo, new { autofocus = true })