如何使用标准HTML帮助程序和Razor视图引擎生成以下input
元素:
<input id="Foo" name="Foo" type="text" autofocus />
我可以使用标准的HTML帮助程序,还是必须自己编写?
非常感谢任何帮助!
答案 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 })
。