ASP.NET MVC enrutamiento y áreas
-
06-07-2019 - |
Pregunta
Estoy perdiendo el tiempo con ASP.NET MVC 2 Preview 2 y estoy tratando de averiguar cómo funciona el enrutamiento en áreas y cosas por el estilo. En una implementación de áreas de un solo proyecto, quiero un área llamada " admin " ;.
Estoy tratando de poder tener urls como este:
(root)/admin/apples/search
(root)/admin/apples/edit/3
(root)/admin/apples/add
(root)/admin/oranges/search
(root)/admin/oranges/edit/5
(root)/admin/oranges/add
(root)/admin
He creado el área. He creado los controladores con sus respectivas vistas, pero es el enrutamiento que parece que no puedo obtener. ¿Algún consejo sobre cómo lograría tal enrutamiento?
Estoy seguro de que esto puede ser extremadamente simple para algunos, pero no he tenido mucha suerte en encontrar ejemplos que vayan más allá de lo básico.
¡Gracias!
Adición a la pregunta (25/10/2009) Básicamente estoy preguntando qué rutas y en qué orden establecería en la clase de Registro de Área del Área? He hecho todo lo mencionado hasta ahora, pero sin resultados.
Solución
Registrar áreas en un solo proyecto
Tienes que agregar el archivo route.cs a la carpeta del área de administración.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcAreasSingleProject.Areas.Admin
{
public class Routes : AreaRegistration
{
public override string AreaName
{
get { return "admin"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"admin_default",
"admin/{controller}/{action}/{id}",
new { controller = "Admin", action = "Edit", id = "" }
);
}
}
}
Otros consejos
http://haacked.com/archive/2009 /07/31/single-project-areas.aspx
routes.MapAreaRoute("Forums", "admin_area", "admin/{controller}/{action}/{id}", new { controller = "apples", action = "search", id = "" }, new string[] { "Project.Areas.Admin.Controllers" });