如何让textbox helper显示HTML 4.01严格的有效HTML标记?

时间:2011-09-26 08:24:20

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我的页面/视图中有以下代码:

@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="">

3 个答案:

答案 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>