实时检验您的页面是否符合XHTML标准——使用Validator Module

当前,Web开发人员都希望自己的网站可以符合XHTML标准(如果您不知道什么是XHTML标准,请参考Web标准和ASP.NET - 第一部分 XHTML介绍)。在通常的开发基于ASP.NET的符合XHTML标准的Web程序时,我们需要不停的查看渲染出来的ASPX页面源文件并copy & paste到某些在线的XHTML Validator中。当然,在小型简单的Web程序中这样也没什么难的。但考虑到随着程序规模的扩大,这种方案的不方便一面就渐渐显露出来。或者您可以在页脚处提供一个“验证XHTML”的链接,指向一个地址,再由这个地址获取您的页面并做以验证,但对于开发一些需要认证才能访问的页面时候(比如Hotmail的收件箱),或是开发环境并没有持久的网络连接时候,这种办法就没法使用了。

Bruusi和Josh开发了一个ASP.NET 2.0 Validator Module (注意:仅可用于ASP.NET 2.0程序),可以在页面渲染的时候自动为您检查该页面是否符合XHTML标准,并在页面上显示验证结果(可以自定义显示部位)。

这个Validator Module会在您的每个页面渲染时根据页面的DOCTYPE自动从W3C下载相应的最新的DTD文件以验证您的页面,并将这些DTD文件其缓存在本地,使您接下来可以离线开发并验证。

您可以在http://www.thejoyofcode.com/Validator_Module.aspx 找到这个Validator Module的英文介绍以及最新更新。

现在让我们看一下一个使用Validator Module的页面的截图。这里我只是简单的通过一个Button来切换某个Label上面文字的换行符(HTML中的<br>,XHTML中的<br />),来使这个页面在XHTML合法与非法之间切换。

合法:

非法:

您可以在http://www.thejoyofcode.com/ValidatorModule/找到更多的示例程序。

下面我们来看看如何使用这个Validator Module,首先,在http://www.thejoyofcode.com/uploads/ValidatorModule.zip 下载所需要引用的程序集并在您的Web Site中添加对其的引用。

然后,按照下载的压缩包中的示例Web.config文件修改您的Web.config文件。您需要在<configuration>节下添加如下内容:

其中validatorModule的mode属性可选Html,HtmlFloat,Comments或者Custom,如果您选择了Custom,还需要编写对IValidationRenderer接口的实现。pageExtensions节中可以指定您需要验证的文件类型。contentTypes节中可以指定您需要验证的内容类型。

<!-- setup the custom configuration section -->
<configSections>
  
<section name="validatorModule" type="Tjoc.Web.Validator.ValidatorConfigHandler, Tjoc.Web.Validator"/>
</configSections>

<!-- configure the validator -->
<validatorModule enabled="true" mode="HtmlFloat">
  
<pageExtensions>
    
<add value=".aspx"/>
  
</pageExtensions>
  
<contentTypes>
    
<add value="text/html"/>
  
</contentTypes>
</validatorModule>

您还可以添加如下内容(可选)以通过代理服务器访问W3C:

<proxy server="proxyserver" port="80" domain="domainname" username="username" password="password"/>

最后,还需要在<system.web>段下添加如下内容:

<!-- add the Validator to the HTTP modules collection -->
<httpModules>
  
<add type="Tjoc.Web.Validator.ValidatorModule, Tjoc.Web.Validator" name="ValidatorModule"/>
</httpModules>

OK,万事大吉,您现在可以方便的随时随地检查您的页面是否符合XHTML标准了!

本文开头的示例程序可在此下载:https://files.cnblogs.com/dflying/ValidatorModuleDemo.zip

Validator Module可在此下载:http://www.thejoyofcode.com/uploads/ValidatorModule.zip

如果您希望研究一下Validator Module的源程序,可以在http://www.thejoyofcode.com/contact_us.aspx 与Bruusi和Josh联系。

posted on 2006-04-11 09:06  Dflying Chen  阅读(3030)  评论(9编辑  收藏  举报