ASP.NET MVC area namespace problem

Shakeeb Ahmed picture Shakeeb Ahmed · Jul 19, 2011 · Viewed 7.3k times · Source

I create a new area in my asp.net mvc 3 solution named admin. Visual studio automatically assign the names space:

MyApp.areas.admin.controllers

I change this to MyApp.admin.controllers

But it stops resolving the action.
Any help in this regard will be appreciated.
Thanks

Answer

rycornell picture rycornell · Jul 19, 2011

You need to specify the new namespace when registering the route for your admin area.

In your \Areas\admin\adminAreaRegistration.cs file, you need to modify the RegisterArea() method as follows:

public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        "admin_default",
        "admin/{controller}/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional }, 
        new string[] { "MyApp.admin.Controllers" }  // specify the new namespace
    );
}