ASP.NET 2.0 / 3.5中的XHTML 1.0严格(或过渡)合规性

时间:2008-09-30 23:11:13

标签: asp.net xhtml-1.0-strict

有没有什么好方法可以让ASP.NET 2.0在XHTML 1.0严格(或过渡)DTD下进行验证?在讨论HTTP响应的核心之前,我有兴趣听一些想法。

一个主要问题是表单标签本身,这是我在尝试验证时从W3C获得的输出:

Line 13, Column 11: there is no attribute "name".
<form name="aspnetForm" method="post" action="Default.aspx" onsubmit="javascript

对于ASP.NET来说,这个标签是非常基础的,众所周知。 Hmmmm。

3 个答案:

答案 0 :(得分:11)

ASP.NET 2.0及更高版本确实可以输出Strict(或Transitional)XHTML。这将解决您的'没有属性'名称“'验证错误,以及其他内容。要进行此设置,请使用以下内容更新Web.config文件:

<system.web>
    ... other configuration goes here ...
    <xhtmlConformance mode="Strict" />
</system.web>

对于Transitional XHTML,请改用mode="Transitional"

请参阅MSDN上的How to: Configure XHTML Rendering in ASP.NET Web Sites

答案 1 :(得分:4)

您是否考虑过ASP.NET MVC Framework?如果要求严格的XHTML合规性,这可能是更好的选择。您可以更好地控制输出,但如果您已经熟悉传统的ASP.NET模型,那么您将会熟悉不熟悉的领域。

答案 2 :(得分:2)

可以使用CSS Adapters等技术更改ASP.NET控件的输出。虽然我个人不建议你开箱即用,但它可能会给你一些好的解决方案提示。

我通常避免在任何可能的情况下使用ASP.NET控件,除了那些不会自己生成标记的控件,例如Repeater控件。我将研究ASP.NET MVC框架(构建StackOverflow的内容),因为这样可以100%控制标记。