这有点像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/TestAreahttp://servername/TestArea/Hello一样工作,但是没有成功。基本的http://servername/可以正常工作。

所以问题是:如何在区域中返回默认控制器?

编辑:我上传了一个示例项目,以显示我的意思:http://beginningasp.net/TestAsync.zip

最佳答案

尝试在默认路由之前注册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
);

关于c# - 区域的默认 Controller ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2640104/

10-13 06:17
查看更多