C# ASP.NETMVC中的区域路由问题

C# ASP.NETMVC中的区域路由问题,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,似乎区域路由对我来说是个问题。这是我的问题,我有一个名为Administration的应用程序,我有一个名为DepartmentController的控制器。现在我需要创建一个路由,该路由将生成一个链接,如 这就是我所做的 在应用程序的Route.Config文件中,我添加了如下自定义路由: routes.MapRoute( name: "DeptSetup", url: "Setup/Department/{action}/{id}",

似乎区域路由对我来说是个问题。这是我的问题,我有一个名为Administration的应用程序,我有一个名为DepartmentController的控制器。现在我需要创建一个路由,该路由将生成一个链接,如

这就是我所做的

在应用程序的Route.Config文件中,我添加了如下自定义路由:

routes.MapRoute(
            name: "DeptSetup",
            url: "Setup/Department/{action}/{id}",
            defaults: new { controller = "Department", action = "Index", id = UrlParameter.Optional },
            namespaces: new string[] { "Administration.Controllers" }
        );
有了这些,我就找不到资源了

我尝试了AdministrationArea注册,如下所示:

  context.MapRoute(
                name: "DeptSetup",
                url: "Setup/Department/{action}/{id}",
                defaults: new { controller = "Department", action = "Index", id = UrlParameter.Optional },
                namespaces: new string[] { "Administration.Controllers" }
            );
一切都不管用。请给我指出正确的方向


谢谢

您缺少路由URL模板中的区域部分。使用
AdministrationAreaRegistration
是一种正确的方法,因为地区应该负责注册自己的路线,但路线本身应该如下所示:

url: "Administration/Setup/Department/{action}/{id}"

您应该使用区域注册
AdministrationAreaRegistration
)类,并应将管理员(区域名称)添加到
url
模板中:

context.MapRoute(
            name: "DeptSetup",
            url: "Administrator/Setup/{controller}/{action}/{id}",
            defaults: new { controller = "Department", action = "Index", id = UrlParameter.Optional }
        );