Saltar apartados

Enrutamiento

L'enrutamiento ASP.NET permet usar adreces URL que no és necessari assignar a arxius específics d'un lloc web. Atès que l'adreça URL no ha d'assignar-se a un arxiu, es poden usar adreces URL que descriguen l'acció de l'usuari i, per tant, siguen més fàcils de comprendre.

En una aplicació ASP.NET que no utilitza l'enrutamiento, una sol·licitud entrant d'una adreça URL normalment s'assigna a un arxiu físic que controla la sol·licitud, com un arxiu .aspx. Per exemple, una sol·licitud d'http://server/application/products.aspx?aneu=4 s'assigna a un arxiu denominat Products.aspx que conté codi i marcat per a representar una resposta a l'explorador. La pàgina web utilitza el valor de cadena de consulta aneu=4 per a determinar el tipus de contingut que es va a mostrar.

En l'enrutamiento d'ASP.NET, es poden definir models d'adreça URL que s'assignen a arxius de controlador de sol·licituds però que no necessàriament incloguen els noms d'aqueixos arxius en l'adreça URL. A més, es poden incloure marcadors de posició en un model d'adreça URL de manera que es puguen passar dades variables al controlador de sol·licituds sense necessitat d'una cadena de consulta.

Els models d'adreça URL per a les rutes en les aplicacions de MVC solen incloure els marcadors de posició {controller} i {action}.

Per exemple, una adreça URL que inclou la ruta d'accés /Products està assignada a un controlador denominat ProductsController. El valor del paràmetre action és el nom del mètode d'acció que s'invoca. Una adreça URL que inclou la ruta d'accés /Products/xou donaria lloc a una trucada al mètode Xou de la classe ProductsController.

El Model d'adreça URL predeterminat és el següent

{controller}/{action}/{aneu}

i una adreça que es correspon amb aquest enrutamiento seria

http://server/catalogo/listado/cursos

  • Controller: Catalogue
  • Action: Llistat
  • Aneu: cursos

Agregar rutes a una aplicació de MVC

És possible crear la nostra pròpia implementació de controladors amb classes que deriven de la classe ControllerBase. Aquest procés és alguna cosa laboriós amb el que ens anem a centrar l'enrutamiento que es defineix el fitxer global.asax.

A continuació es defineix l'enrutamiento per defecte que genera la plantilla de projecte de Visual Studio per a les aplicacions de MVC.

public class MvcApplication : System.Web.HttpApplication

{

public static void RegisterRoutes(RouteCollection routes)

{

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

routes.MapRoute(

"Default", // Route name

"{controller}/{action}/{aneu}", // URL with parameters

new { controller = "Home", action = "Index", aneu = "" } // Parameter defaults

);

}

protected void Application_Start()

{

RegisterRoutes(RouteTable.Routes);

}

}

En la secció MapRoute podem veure que es defineix amb el format anteriorment comentat. En la línia següent defineix els valors per defecte.

Si volguérem afegir un tercer paràmetre a la ruta que indicara l'idioma de l'aplicació, seria tan senzill com afegir en la secció MapRoute el paràmetre {language}. En la tercera sessió veurem com fer ús del paràmetre i poder crear aplicacions multiidiomáticas.

public class MvcApplication : System.Web.HttpApplication

{

public static void RegisterRoutes(RouteCollection routes)

{

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

routes.MapRoute(

"Default", // Route name

"{language}/{controller}/{action}/{aneu}", // URL with parameters

new { language = "és", controller = "Catalogador", action = "Index", aneu = UrlParameter.Optional } // Parameter defaults

);

}

protected void Application_Start()

{

AreaRegistration.RegisterAllAreas();

RegisterRoutes(RouteTable.Routes);

}

    }

Servei d'Informàtica ASP.NET MVC 2 Framework


Universitat d'Alacant
Carretera de Sant Vicent del Raspeig s/n
03690 Sant Vicent del Raspeig
Alacant (Spain)

Tel: (+34) 96 590 3400

Fax: (+34) 96 590 3464

Per a més informació: informacio@ua.es, i per a temes relacionats amb aquest servidor web: webmaster@ua.es

Carretera de Sant Vicent del Raspeig, s/n - 03690 Sant Vicent del Raspeig - Alacant - Tel.: 96 590 3400 - Fax: 96 590 3464