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

时间:2020-03-06 14:57:13  来源:igfitidea点击:

是否有任何好的方法可以使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是非常基础的。嗯

解决方案

可以使用CSS适配器之类的技术来更改ASP.NET控件的输出。尽管我个人不建议我们立即使用这些功能,但它可能会为我们提供一个好的解决方案的提示。

我通常尽量避免使用ASP.NET控件,除了那些不会自行生成标记的控件(例如Repeater控件)。我将研究ASP.NET MVC框架(基于StackOverflow的框架),因为它可以使我们100%地控制标记。

我们是否考虑过ASP.NET MVC框架?如果要求严格遵守XHTML,则可能是更好的选择。我们可以更好地控制输出,但是如果我们已经熟悉传统的ASP.NET模型,那么我们将踏上不熟悉的领域。

ASP.NET 2.0及更高版本的确可以输出严格(或者过渡)的XHTML。除其他事项外,这将解决"没有属性"名称""验证错误。要进行此设置,请使用以下内容更新Web.config文件:

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

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

请参阅如何:在MSDN上的ASP.NET网站中配置XHTML渲染。