ASP.NET Core - Attribute Routes
En este capitulo aprenderemos otro enfoque de enrutamiento basado en enrutamiento sobre atributos. Con el enrutamiento basado en atributos, podemos usar atributos de C # en nuestras classs de controlador y en los metodos internamente en esas classs. Estos atributos tienen data que le indican a ASP.NET Core cuando llamar a un controlador especifico.
-
Es una alternativa al enrutamiento basado en convenciones.
-
Las rutas se evaluan en el orden en que aparecen, el orden en el que las guarda, pero es bastante comun mapear multiples rutas, especialmente si desea tener diferentes parametros en la URL o si desea tener diferentes literales en la URL.
Ejemplo
Tomemos un ejemplo simple. Abra el proyecto FirstAppDemo y ejecute la aplicacion dans el navegador. Cuando especifica / about , producira el siguiente resultado:
Lo que Lo que queremos aqui es que cuando especificamos / about , la aplicacion debe invocar la accion Phone desde AboutController. Aqui podemos aplicar algunas rutas explicitas para este controlador al utilizando un atributo de ruta. Este atributo se encuentra en el espacio de nombres Microsoft.AspNet.Mvc .
La siguiente es la implementacion de AboutController donde se agregan rutas de atributos.
usando Microsoft.AspNet.Mvc; usando system; usando System.Collections. Generico; usando System.Linq; usando System.Threading.Tasks; espacio de nombres FirstAppDemo.Controllers {[Route ( "about ")] public class AboutController {[Route ( "")] public string Phone () {return "+ 49-333-3333333} [Ruta (" pais ")] cadena publica Pais () {return " Alemania}}}
Aqui, queremos que esta ruta se vea como aproximadamente y para la accion Telefono especificamos una cadena vacia, lo que significa que no necesitamos la accion especificada para obtener este metodo. El usuario solo necesita acercarse a / alrededor. Para la accion Pais, hemos especificado el "pais" en el atributo de ruta. Permitanos registrar AboutController, actualice su navegador y navegue hacia / sobre y deberiamos darle la accion Telefono.
Especifiquemos el / about / country . Esto le permitira acceder a esta accion de Pais.
Si desea que un segmento de la URL contenga el nombre de su controlador, lo que puede hacer es en En lugar de usar el nombre del controlador explicitamente, puede usar un controlador de token dentro de los corchetes. Esto le dice a ASP.NET MVC que use el nombre de este controlador en esta posicion, como se muestra en el siguiente programa.
usando Microsoft.AspNet.Mvc; usando el sistema; utilizando System.Collections.Generic; utilizando System.Linq; usando System.Threading.Tasks; espacio de nombres FirstAppDemo.Controllers {[Ruta ( "[controlador] ")] class publica AboutController {[Ruta ( "")] cadena publica Telefono () {return "+ 49-333-3333333} [Ruta ( "[accion] ")] cadena publica Pais () {return "Alemania}}}
De esta manera, si alguna vez cambia el nombre del controlador, no tiene que acordarse de cambiar el la carretera. Lo mismo ocurre con una accion e implicitamente hay una barra (/) entre el controlador y la accion. Esta es una relacion jerarquica entre el controlador y la accion, tal como esta dentro de la URL. Guardemos este controlador de nuevo. Lo mas probable es que vea los mismos resultados.
Especifiquemos / about / country. Esto le permitira acceder a esta accion de pais.