2010-04-14 106 views
2

这是一种重复的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

回答

3

尝试注册默认路由之前默认2路和默认值

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 
); 
+0

好一套面积= yourareaname,坚实的点。这样做后,我得到以下内容:“没有找到视图'索引'或其主人。搜索以下位置:”与所有根视图文件夹的列表。没有任何区域的文件夹被搜索到。 – Krisc 2010-04-14 18:56:04

+0

@Krisc你使用mvccontrib或者其他的lib来进行路由吗? – Gregoire 2010-04-14 19:05:33

+0

不,这是一个“空白”MVC2项目(用于测试)。 – Krisc 2010-04-14 19:12:34