我的页面/视图中有以下代码:
@Html.TextBoxFor(x => x.Name, new { maxlength = "50", size = "50" })
生成的输出是:
<input id="Name" maxlength="50" name="Name" size="50" type="text" value="" />
我使用以下doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
我的页面未使用HTML验证工具进行验证,原因是关闭/&gt;输入元素。如何让助手为我创建一个输入元素,如下所示:
<input id="Name" maxlength="50" name="Name" size="50" type="text" value="">
答案 0 :(得分:1)
我认为TextBoxFor
帮助生成的html是正确的,或者至少可以在任何浏览器中使用,但如果要创建自己的帮助方法,可以向{{1}添加扩展方法}。例如:
HtmlHelper
答案 1 :(得分:0)
HTML帮助程序生成的Html是有效的,HTML 4.01严格和XHTML之间的区别在于XHTML需要在xml中关闭空元素(如输入,br,链接等)。 我认为XHTML是更新的标准,如果没有特定的限制你应该使用它,其中一个原因是,在这种情况下你的HTML可以用作XML(用于XSLT处理等)。
答案 2 :(得分:0)
asp.net mvc中的Html助手只是简化html生成过程的助手。它们不包含任何神奇的东西,只是渲染html。如果您想要对生成的html进行绝对控制,您可以创建自己的帮助者或在视图中编写纯html 。这没什么不对的。
顺便说一下,asp.net mvc 3默认使用属于html5的data-*
属性。如果您绝对不想使用它们,请在web.config中关闭
<appSettings>
<add key="ClientValidationEnabled" value="false" />
<add key="UnobtrusiveJavaScriptEnabled" value="false" />
</appSettings>