ASP.NET MVC 2区域,奇怪的路由行为

时间:2010-04-24 13:15:02

标签: asp.net-mvc-2 routing areas

我创建了一个名为“Admin”的区域。我在这方面也创建了一个控制器(Pages)和一个视图(List)。

当我运行我的应用程序并输入网址“/ Admin / Pages / List”时,我收到了一个无法找到资源的错误。

当我输入/ Pages / List时,会触发Action方法,但找不到视图,因为应用程序正在错误的目录中搜索

〜/查看/页/ List.aspx 〜/查看/页/ List.ascx 〜/查看/共享/ List.aspx 〜/查看/共享/ List.ascx

视图位于/ Admin / Pages / List。

管理区域的路由配置:

public class AdminAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "Admin";
        }
    }

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

1 个答案:

答案 0 :(得分:2)

您是否已将AreaRegistration.RegisterAllAreas();添加到Global.asax.cs

这应该在您现有的routes.MapRoute电话

之前运行

修改

只看了我的管理区域,路由看起来像这样:

context.MapRoute(
                "Admin_Default",
                "Admin/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );