无法在MVC 2 RC区域中设置默认控制器

时间:2010-01-11 23:43:46

标签: asp.net-mvc routing

这应该很简单,但唉......

我在MVC 2项目中设置了一个管理区域(单个项目区域)。我已经创建了几个控制器及其各自的视图文件夹。在AreaRegistration.RegisterArea方法中,我已指定我希望默认控制器为“仪表板”:

public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { controller = "Dashboard", action = "Index", id = "" }, new string[] { "Admin" }
        );
    }

如果我导航到url / Admin / Dashboard,索引会很好。但是,我想要的是允许用户转到url / Admin /并查看相同的内容。但是,当我这样做时,我得到“无法找到资源”。

我只是对MVC 2的区域实施感到不满,我认为我做的事情并不复杂......任何人都遇到同样的问题?我是否需要指定一条单独的路径,可能是在根区域,非区域级别?

3 个答案:

答案 0 :(得分:1)

尝试添加此额外路线:

        context.MapRoute(
            "Admin_default2",
            "Admin"
            new { controller = "Dashboard", action = "Index", id = "" }
        )

答案 1 :(得分:1)

好的,奇怪的。所以我添加了一个不同的区域,恰当地命名为“Administration”,设置默认控制器并添加了适当的控制器,视图等等。区别?在我的第一个案例中,我使用“Admin”作为区域。

答案 2 :(得分:0)

context.MapRoute(
               "Admin_default3",
               "Admin/{action}",
               new { controller = "Admin", action = "Index" }
               );