asp.net mvc中的区域,只有一个在工作

我的文件夹看起来像这样:

  • (根)/地区/管理/查看/ ..
  • (根)/区/管理/控制器/ ...
  • (根)/Areas/Admin/Routes.cs

  • (根)/区/论坛/浏览/ ..

  • (根)/区/论坛/控制器/ ...
  • (根)/Areas/Forum/Routes.cs

    public class Routes : AreaRegistration
    

    {public override string AreaName {get {return“Admin”; }}

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_Default",
            "{controller}/{action}/{Id}",
            new { controller = "Admin", action = "Index", Id = (string)null }
        );
    }
    

    }

    公共类路由:AreaRegistration {公共覆盖字符串AreaName {获得{返回“论坛”; }}

    public override void RegisterArea(AreaRegistrationContext routes)
    {
        routes.MapRoute(
            "Forum_Default",
            "{controller}/{action}",
            new { controller = "Forum", action = "Index"}
        );
    }
    

    }

  • Global.asax中

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
            AreaRegistration.RegisterAllAreas();
    
            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );
    

    首页应该是Home / Index,但是它以Admin / Index开头,为什么?

    只有site.com/Admin不适用于site.com/Forum

    我应该如何让管理员和论坛区域正常工作? 为什么只有管理员工作,而不是论坛?

    当我删除Admin / Routes.cs文件论坛开始工作...

    编辑:

    即使我有,也不会显示为首页

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
    

    在我的Global.asax后AreaRegistration.RegisterAllAreas();


    我相信你的区域映射应该像这样构建。

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_Default",
            "Admin/{controller}/{action}/{Id}",
            new { controller = "Admin", action = "Index", Id = (string)null }
        );
    }
    

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Forum_Default",
            "Forum/{controller}/{action}/{Id}",
             new { controller = "Forum", action = "Index"}
        );
    }
    

    保持你的路线不冲突,这是我认为你的情况正在发生。 因为您的默认路线与您的管理路线相符。

    链接地址: http://www.djcxy.com/p/36753.html

    上一篇: Areas in asp.net mvc, only one work at time

    下一篇: disable crop frame to resizable in android