Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

IgnoreRoute e Global.asax

Stabilire le regole di routing per l'applicazione ed escludere particolari action
Stabilire le regole di routing per l'applicazione ed escludere particolari action
Link copiato negli appunti

Anche se possiamo registrare le regole di routing in qualsiasi parte dell'applicazione, è buona norma inserire il codice all'interno del file Global.asax, nella funzione Application_Start. In questo modo sapremo sempre dove trovare le nostre regole di routing ed avremo inoltre la certezza che vengano generate ad ogni avvio dell'applicazione. I progetti generati da Visual Studio, inoltre, seguono questa organizzazione.

public static void RegisterRoutes()
{
  RouteCollection routes = RouteTable.Routes;
  
  routes.MapRoute( "Default",                    // Nome
                   "{controller}/{action}/{id}", // URL e parametri 
                   new { controller = "Home",    // Valori di default
                         action = "Index", 
                         id = "" }
                 );
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
}

protected void Application_Start()
{
  RegisterRoutes();
}

Questo codice è tratto dal file Global.asax del progetto di esempio. Come potete vedere la funzione Application_Start, richiamata automaticamente all'avvio dell'applicazione Web, invoca a sua volta la funzione RegisterRoutes, creata specificatamente per aggiungere le regole di routing necessarie all'applicazione. Utilizzare una funzione dedicata non è obbligatorio, ma caldamente consigliato per mantenere ordine nel codice, specie quando si rendano necessarie molte regole di routing.

Escludere URL dal routing: IgnoreRoute

Oltre al metodo MapRoute già visto nei dettagli, nel codice abbiamo anche la funzione IgnoreRoute, utile per impedire che un determinato URL sia gestito dal meccanismo di routing.

I casi in cui la funzione può risultare utile sono molti.Ad esempio facciamo uso di questo metodo nella nostra galleria di immagini per escludere gli URL dei file di risorsa (estensione .axd) dalla RouteTable:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

Come per MapRoute, anche in questo caso possiamo utilizzare delle espressioni per il matching degli URL e i route constraints per dichiarare dei vincoli sui parametri.


Ti consigliamo anche