问题
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 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?
回答1:
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
.
来源:https://stackoverflow.com/questions/3298325/asp-net-mvc-area-default-page