这是Trouble setting a default controller in MVC 2 RC Area
的重复但他的回答并不能让我满意,因为它不起作用。
我有以下
/Areas/TestArea/Controllers/HelloController
/Areas/TestArea/Views/Hello/Index
/Controllers/HomeController
/Views/Home/Index
使用以下路线:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default2", // Route name
"TestArea/{controller}/{action}/{id}", // URL with parameters
new { controller = "Hello", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
我添加了第二个尝试让http://servername/TestArea像http://servername/TestArea/Hello一样工作,但没有成功。基本http://servername/按预期工作。
所以问题是:如何在区域中返回默认控制器?
编辑:我上传了一个示例项目来展示我的意思:http://beginningasp.net/TestAsync.zip
答案 0 :(得分:3)
尝试在默认路由之前注册Default2路由,并在默认值中设置area = yourareaname
routes.MapRoute(
"Default2", // Route name
"TestArea/{controller}/{action}/{id}", // URL with parameters
new { controller = "Hello", action = "Index",area="TestArea", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);