E' ormai noto che ASP.NET 2 "produce" codice xhtml 1.0 valido.
Lo strumento ufficiale per effettuare la validità del codice dei propri siti web è il validator offerto dal W3C (il WWW Consortium), associazione che si occupa di tutte le specifiche per i vari linguaggi utilizzati nel web.
Per far funzionare correttamente il validator con le nostre applicazioni ASP.NET, abbiamo bisogno di una piccola aggiunta al nostro progetto: un file di definizione .browser, che identifica l'agente proprio del validator del w3c.
Questo il contenuto di tale file, che va inserito all'interno della directory di ASP.NET 2 "App_Browsers":

<browsers>

<browser id="W3C_Validator" parentID="default">
<identification>
<userAgent match="^W3C_Validator" />
</identification>
<capabilities>
<capability name="browser" value="W3C Validator" />
<capability name="ecmaScriptVersion" value="1.2" />
<capability name="javascript" value="true" />
<capability name="supportsCss" value="true" />
<capability name="tables" value="true" />
<capability name="tagWriter" value="System.Web.UI.HtmlTextWriter" />
<capability name="w3cdomversion" value="1.0" />
</capabilities>
</browser>
</browsers>

La soluzione ci viene data in questo articolo riguardante l'utilizzo dell'XHTML in applicazioni ASP.NET 2.