xhtml con asp.net 2.0

di Andrea Zani, in .NET2,

In questo periodo di esasperazione parossistica, sto giocando con l'xhtml e le varie versioni del Framework in accoppiato con Visual Studio. Non c'è scusanti: la versione attuale e precedente di VS - la 2003 e la 2002 - come tutti sanno, produce e corregge in modo assurdo il codice html inserito,, il qualche, una volta portato ai vari validatori, comporta una lista di problemi non da poco e non correggibili soprattutto se si ha abbraciata la causa dell'xhtml. Vizi strani quelli di VS, come inserire in maiuscolo e cancellare i tag di chiusura per i fatti suoi... Inoltre la stessa tecnica utilizzata dalle pagine asp.net di memorizzare i vari dati nel viewstate comporta altre incompatibilità ben spiegati qui.

L'unico modo che trovato per correggere è seguire la strada spiegata in quell'articolo. Personalmente ho adottato un'altra tecnica simile a quella spiegata, ma che ereditando dalla classe principale Page, modifica l'output prima dell'invio del browser; tecnica che risolve i problemi anche per chi scrive codice con VS...

E la nuova versione di Visual Studio attesa per la prima parte del prossimo anno? E' una delle prime cose che ho provato la validazione di codice, visto che la piena compatibilità con l'xhtml è stata tanto decantata. Ho scritto questo banale codice:

<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "<a href="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</a>">
<script runat="server">
    Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Label1.Text = TextBox1.Text
    End Sub
</script>
<html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" Runat="server">Andy</asp:TextBox>
        <asp:Button ID="Button1" Runat="server" Text="Scrivi" OnClick="Button1_Click" />
        <asp:Label ID="Label1" Runat="server" Text="Ancora nulla!"></asp:Label> 
    
    </div>
    </form>
</body>
</html>

Vediamo il codice HTML prodotto:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "<a href="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>" >
<head><title>
 Untitled Page
</title></head>
<body>
    <form method="post" action="xhtml.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" value="/wEPDwULLT...c7FSPMQw8=" />
</div>
<div>
        <input name="TextBox1" type="text" value="Andy" id="TextBox1" />
        <input type="submit" name="Button1" value="Scrivi" id="Button1" />
        <span id="Label1">Andy</span> 
    
    </div>
    </form>
</body>
</html>

Perfetto: il codice passato ai validatori viene dichiarato come codice xhtml valido!!! Felicità!

Complichiamo il tutto: aggiungiamo un semplice RequiredFieldValidator al campo Textbox presente nel codice, e passiamo il risultato al validatore della W3C. Risultato: 4 errori in un'unica riga!!!

#
Line 29, column 32: there is no attribute "controltovalidate"
<span controltovalidate="TextBox1" errormessage="RequiredFieldValidator"
...
#
Line 29, column 56: there is no attribute "errormessage"
...oltovalidate="TextBox1" errormessage="RequiredFieldValidator" id="RequiredFie
#
Line 29, column 129: there is no attribute "evaluationfunction"
...dFieldValidator1" evaluationfunction="RequiredFieldValidatorEvaluateIsValid"
#
Line 29, column 182: there is no attribute "initialvalue"
...lidatorEvaluateIsValid" initialvalue="" style="color:Red;visibility:hidden;">

E che è? Vediamo il codice HTML della riga incriminata:

        <span controltovalidate="TextBox1" errormessage="RequiredFieldValidator" id="RequiredFieldValidator1" evaluationfunction="RequiredFieldValidatorEvaluateIsValid" initialvalue="" style="color:Red;visibility:hidden;">RequiredFieldValidator</span>

Ma che codice ha inserito? Il .Net 2 ha creato degli attributi tutti suoi negli SPAN per i validator... Uffi!

Spero che sia un problema di gioventù e che il tutto si corregga per la versione, se non beta 1 o 2, almeno per la versione finale.

Ora ho fame: vado a mangiarmi un chilo di formaggio.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese