net mvc maproute asp c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-areas

c# - asp - maproute area mvc 5



Cómo configurar áreas en ASP.NET MVC3 (3)

¿Alguien sabe cómo configurar áreas en ASP.NET MVC3? Leí un artículo sobre Áreas here . Pero ese artículo no está basado en MVC3. En MVC3 no hay ninguna función llamada MapRootArea en RouteCollection routes que se encuentra en Global.asax

routes.MapRootArea("{controller}/{action}/{id}", "AreasDemo", new { controller = "Home", action = "Index", id = "" });

Cuando creo un Área Nueva usando MVC3, obtuve una clase de esa área que heredó de AreaRegistration de AreaRegistration y se ve como sigue: (aquí Blogs es el nombre del área)

public class BlogsAreaRegistration : AreaRegistration { public override string AreaName { get { return "Blogs"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Blogs_default", "Blogs/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } ); } }

¿Alguien podría ayudarme cómo configuro el área en MVC3? Cualquier tipo de enlace sería útil también.


Haga clic derecho en su proyecto web y seleccione Agregar -> Área ... Luego escriba el nombre del área y Visual Studio se encargará del resto, que es generar todas las clases necesarias. Por ejemplo, el registro de área podría verse así:

public class AreasDemoAreaRegistration : AreaRegistration { public override string AreaName { get { return "AreasDemo"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "AreasDemo_default", "AreasDemo/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } ); } }

y en Application_Start de su Global.asax todo lo que necesita es:

AreaRegistration.RegisterAllAreas();


Por favor, encuentre abajo la imagen que muestra cómo configurar el área en mvc.


Puede tener el mismo nombre de controlador en la raíz y el área, solo tiene que definirlo.

En su global.asax, agregue la última línea de routes.maproute como se muestra a continuación

routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional },// Parameter defaults new[]{"YourNameSpace.Controllers"} );

también, agregue el nombre del controlador en su archivo ares / ????? AreaRegistration.cs

context.MapRoute( "Membership_default", "Membership/{controller}/{action}/{id}", new { controller= "Home", action = "Index", id = UrlParameter.Optional } );