【问题标题】:Routing Areas in asp.net mvcasp.net mvc中的路由区域
【发布时间】:2021-02-13 06:33:26
【问题描述】:

我有一个用户区,我想从用户区 URL 中删除控制器

我尝试过使用

[Route("User/ChangePassword")
public ActionResult ChangePassword()

但它不起作用!

路由配置

  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 }
            );
        }

用户区域注册

 public override string AreaName 
        {
            get 
            {
                return "User";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context) 
        {
            context.MapRoute(
                "User_default",
                "User/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );
        }

那么我怎样才能为用户区生成这个url呢?

domain.com/user/changepassword

【问题讨论】:

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


    【解决方案1】:

    您可以在 Route.config 中添加命名空间。它将指向区域的配置路径

      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[] {
                    "Areas.Controllers"
                }
                );
            }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-09
      • 2018-05-31
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多