【问题标题】:How to configure routes when using areas in asp.net mvc?在asp.net mvc中使用区域时如何配置路由?
【发布时间】:2015-08-03 11:45:48
【问题描述】:

场景: 我有 3 个名为 - 专辑歌手音乐的区域 现在每个区域都有同名的控制器。比如每个区域都有 LoginController。

现在我得到以下异常

找到与名为“登录”的控制器匹配的多种类型 如果为该请求提供服务的路由未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。 如果是这种情况,请通过调用带有“namespaces”参数的“MapRoute”方法的重载来注册此路由。

这是 Visual Studio 在创建区域时自动生成的配置

 public override string AreaName 
    {
        get 
        {
            return "Albums"
        }
    }

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

这是我在 RoutesConfig.cs

中的初始配置
  routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            namespaces: new[] { "Application_Name" }
        );

现在如何配置在url中不进行任何修改的路由,就可以渲染出想要的视图。

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-routing


    【解决方案1】:

    请试试这个:

      public static void RegisterRoutes(RouteCollection routes)
        {
          routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
          routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL
            new { controller = "Home", action = "Index", id = "" }, // Defaults
            new[]{"AreasDemoWeb.Controllers"}                       // Namespaces
          );
        }
    

    Help Link 1

    Help Link2

    【讨论】:

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