views:

39

answers:

1

I have a MVC 2 site with an area, let's say the area name is {Admin}

The areas and the site works fine.

What I am trying to do is to have different default page for the area.

When I am calling http://webSiteName works with no problem

but for http://webSiteName/Admin I am getting the error

The resource cannot be found

I tried it out the solutions from http://stackoverflow.com/questions/2314524/asp-net-mvc-2-rc-2-returns-area-specific-controller-when-no-area-specified but with no luck.

I tried also

routes.MapRoute(
                 "Admin",                                         
                 "{controller}/{action}/{id}",                               
                 new { controller = "AdminHome", action = "index" },
                 new[] { "Web.Areas.Admin.Controllers" }
                 );

and

routes.MapRoute(
                 "Admin",                                      
                 "Admin",                              
                 new { controller = "AdminHome", action = "index" },   
                 new string[] { "Web.Areas.Admin.Controllers" }
                 );

but I am still getting The resource cannot be found.

What am I doing wrong?

+2  A: 

Try this. Make sure it will be in /Areas/Admin/AdminAreaRegistration.cs when your Area is named Admin.

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { controller = "AdminHome",action = "Index", id = "" }
        );
    }

You don't have to add anything to your Global.asax.

Martin Fabik
Thanks Martin, finally it was easier than I thought.:)
StrouMfios