Asp.Net MVC5项目管理区域路由 - 错误路由控制器ActionResult

时间:2016-09-24 00:31:37

标签: c# asp.net-mvc asp.net-mvc-5 routes

MVC5项目我为管理面板创建了区域。 我遇到了问题。

网站前面有 的ProductController和ListActionResult。

管理面板中有ProductController和ListActionResult。

现在...

我要去管理面板ProductController和ListActionResult。(www.xxxxxxxxx.com/Admin/Home/List)

但该项目在头版开放。的(www.xxxxxxxxx.com/Home/List)

我要打开的页面>> www.xxxxxxxxx.com/Admin/Home/List

但是这个开头页面>> www.xxxxxxxxx.com/Home/List

它不会更改页面地址。

但它会成为控制者。

可能是什么问题。

以下是路线信息。

AdminAreaRegistration.cs;

    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 { action = "Index", controller = "Home", id = UrlParameter.Optional }, 
               new[] { "Projem.Web.Areas.Admin.Controllers" } 
             ; 
   } 

RouteConfig.cs;

    public class RouteConfig 
    { 
        public static void RegisterRoutes(RouteCollection routes ) 
        { 
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}" ); 
            routes.MapMvcAttributeRoutes( ); 
            routes.MapRoute( 
               name: "Default", 
               url: "{controller}/{action}/{id}", 
               defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
               namespaces: new[] { "Projem.Web.Controllers" } 
             ; 
        } 
    } 

1 个答案:

答案 0 :(得分:0)

像这样改变RegisterArea方法。

public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", area = "Admin", id = "" },
            new[] { "Projem.Web.Areas.Admin.Controllers" }
        );
    }