Trouble setting a default controller in MVC 2 RC Area
This should be simple, but alas...
I've set up an Admin area within my MVC 2 project (single project areas). I've created a couple controllers and their respective view folders. In the AreaRegistration.RegisterArea method, I've specified that I want the default controller to be "Dashboard":
public override void RegisterArea(AreaRegistrationContext context)
{
开发者_StackOverflow context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Dashboard", action = "Index", id = "" }, new string[] { "Admin" }
);
}
If I navigate to url/Admin/Dashboard, the index comes up just fine. What I want, though, is to allow the user to go to url/Admin/ and see the same thing. When I do this, however, I get "The resource cannot be found".
I'm just getting my feet wet with MVC 2's Area implementation, and I don't think I'm doing anything overly complicated... Anyone had the same problem? Do I need to specify a separate route, perhaps at the root, non-area level?
Try adding this additional route:
context.MapRoute(
"Admin_default2",
"Admin"
new { controller = "Dashboard", action = "Index", id = "" }
)
Ok, odd. So I added a different area, aptly named "Administration", set the default controller and added the appropriate controller, view, etc. and it worked. The difference? In my first case, I was using "Admin" as the area.
context.MapRoute(
"Admin_default3",
"Admin/{action}",
new { controller = "Admin", action = "Index" }
);
精彩评论