2

这是在 MVC 2 RC 区域中设置默认控制器的麻烦的副本

但他的回答不能让我满意,因为它不起作用。

我有以下

/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

4

1 回答 1

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
);
于 2010-04-14T18:47:47.783 回答