Durante lo sviluppo di un progetto a cui sto lavorando ho dovuto affrontare il discorso del Routing di Asp.NET 3.5.
La soluzione più semplice quindi è stata quella di registrare una route nel global.asax, come normalmente viene consigliato.
Tutto ha funzionato fino all’inserimento, in una qualsiasi pagina del sito in questione, di alcuni validatori NET per delle caselle di testo semplicissime.
Dopo una prima analisi ho notato che veniva generato l’errore “WebForm_DoPostBackWithOptions not found” in quella pagina e quindi la validazione non avveniva, senza generare il PostBack della pagina stessa.
Ho quindi pensato subito al Routing che potesse creare problemi alla pagina stessa visto che lavora con handler .axd che vengono processati dal routing come normalissime richieste.
Fortunatamente Asp.NET viene in soccorso tramite la funzione Ignore del Routing stesso che permette di eliminare dalla registrazione alcuni componenti, pagine, controlli etc.
La funzione quindi che ho utilizzato è stata la seguente:
routes.Ignore(“{resource}.axd/{*pathInfo}”);
Inoltre, lavorando con Elmah e Microsoft Chart mi sono dovuto assicurare che anche questi ultimi non venissero tracciati dal routing, ignorandoli :
routes.Ignore(“{*pathInfo}”, new { pathInfo = @”^.*(elmah.axd)$” });
routes.Ignore(“{*pathInfo}”, new { pathInfo = @”^.*(ChartImg.axd)$” });
Il gioco è fatto, alla prossima!