Noté que en MVC 2 Preview 2, AreaRegistration está cargando las rutas para cada área en un orden arbitrario. ¿Hay una buena manera de obtener uno antes que el otro?MVC 2 Rutas de registro de área Orden
Por ejemplo, tengo dos áreas: "Sitio" y "Administrador". Ambos tienen un controlador "Blog".
Me gustaría que el siguiente:
/admin/ --> go to Admin's Blog controller
/ --> go to Site's Blog controller.
El problema es que se está cargando la ruta del sitio en primer lugar, por lo que está haciendo juego {controller}/{action}/{id}
en lugar de admin/{controller}/{action}/{id}
cuando voy a la URL "/ admin /". Luego obtengo un 404, porque no hay un controlador de administración en el área "Sitio".
Ambas áreas tienen por defecto el controlador "Blog". Me doy cuenta de que simplemente podría poner site/{controller}/...
como la url, pero preferiría tenerlo en la raíz si es posible. También traté de mantener la ruta predeterminada en la función global RegisterRoutes, sin embargo, luego no se envía al área "Sitios".
¡Gracias de antemano!
Hola Phil, gracias por la explicación. Terminé moviendo mi "sitio" fuera de Áreas y ahora es la sección "predeterminada/no área" (con Vistas y Controladores en la raíz). Luego configuro mi parámetro de espacio de nombres para los controladores predeterminados para evitar el error de "controlador ambiguo". Además, podría haber establecido restricciones a algo como^((?! admin). *) Para ignorar el administrador en las rutas del área del sitio. Acepto, agregar más complejidad no es genial, aunque parece que las rutas mvc 1 (no de área) podrían depender mucho del pedido. Gracias! – Jason
El proceso de enrutamiento generalmente depende del orden de las reglas, por lo que la función 'ordenar' puede ser importante. – twk
Consulte mi respuesta para dos técnicas que le permiten ordenar el registro de área (y por lo tanto sus rutas) en cualquier orden. – Eilon