Routing
Última actualización
Última actualización
El sistema de enrutamiento en Razor Pages crea rutas basadas en la ubicación de los archivos Razor y sus nombres, siguiendo unas reglas simples pero poderosas. Aquí tienes los puntos clave:
🔹 Rutas Basadas en la Ubicación de Archivos: La ruta de acceso a una página se determina por su nombre de archivo y la carpeta en la que se encuentra. Esto hace que las URLs sean predecibles y fáciles de organizar.
🔹 Páginas Especiales: Los archivos que comienzan con un guión bajo (_
) son tratados de manera especial y no se les asigna una ruta directa, ya que generalmente se usan para componentes de layout, partials, o para incluir funcionalidades específicas reutilizables.
🔹 Omisión de la Extensión: La extensión del archivo (por ejemplo, .cshtml
para las páginas Razor) se omite en la ruta. No necesitas incluir .html
o .cshtml
al navegar a una página.
🔹 Página por Defecto: index.cshtml
es tratada como la página predeterminada de cualquier directorio. Esto significa que se puede acceder a ella tanto mediante la ruta explícita /index
como con una ruta vacía (/
), si es la raíz del directorio.
🔹 Ejemplo Práctico: Crear un directorio Pruebas
con una página index.cshtml
dentro genera dos rutas: una ruta vacía (/Pruebas/
) y /Pruebas/Index
, ambas apuntando a la misma página.
🔹 Manejo de Ambigüedades: Si hay nombres de archivos que pueden causar conflictos de rutas (por ejemplo, dos index.cshtml
en diferentes carpetas pero accesibles mediante la misma ruta simplificada), Razor Pages puede generar errores de ambigüedad. Esto se soluciona asegurando una estructura de carpetas y nombres de archivo clara y única para cada página.
🔹 Personalización de Rutas: Aunque el enrutamiento predeterminado es suficiente para muchos casos, Razor Pages permite personalizar y crear rutas más complejas mediante la directiva @page
en el archivo Razor, ofreciendo flexibilidad para manejar casos más específicos o complejos.
🔹 Parámetros de Ruta: Puedes capturar valores de la URL directamente como parámetros en la ruta. Por ejemplo:
Puedes definir rutas que incluyan múltiples segmentos variables, por ejemplo: