XHTML 1.0 Conformità rigorosa (o transitoria) in ASP.NET 2.0 / 3.5
-
03-07-2019 - |
Domanda
Esistono metodi validi per convalidare ASP.NET 2.0 in base al DTD XHTML 1.0 Strict (o Transitional)? Sono interessato a sentire alcune idee prima di hackerare il nucleo della risposta HTTP.
Un grosso problema è il tag del modulo stesso, questo è l'output che ho ricevuto dal W3C quando ho provato a convalidare:
Line 13, Column 11: there is no attribute "name".
<form name="aspnetForm" method="post" action="Default.aspx" onsubmit="javascript
Quel tag è fondamentale per ASP.NET, come tutti sapete. Hmmmm.
Soluzione
ASP.NET 2.0 e versioni successive possono effettivamente generare XHTML Strict (o Transitional). Ciò risolverà il tuo "non esiste alcun attributo", nome " errore di convalida, tra le altre cose. Per configurarlo, aggiorna il tuo file Web.config con qualcosa del tipo:
<system.web>
... other configuration goes here ...
<xhtmlConformance mode="Strict" />
</system.web>
Per XHTML di transizione, utilizza invece mode = " Transitional "
.
Vedi Procedura: configurare il rendering XHTML nei siti Web ASP.NET su MSDN.
Altri suggerimenti
Hai considerato il ASP.NET MVC Framework ? È probabile che sia una scommessa migliore se è richiesta la rigorosa conformità XHTML. Ottieni un maggiore controllo del tuo output, ma ti troverai a percorrere territori sconosciuti se ti senti già a tuo agio con il modello ASP.NET tradizionale.
È possibile modificare l'output dei controlli ASP.NET utilizzando tecniche come Adapters CSS . Anche se non consiglierei personalmente di usarli immediatamente, potrebbe darti qualche suggerimento su una buona soluzione.
In genere evito di usare i controlli ASP.NET ove possibile, tranne quelli che non generano markup da soli come il controllo Repeater. Esaminerei il framework ASP.NET MVC (su cosa è basato StackOverflow) in quanto ti dà il controllo del 100% sul markup.