如何在asp.net mvc中使用区域时配置路由?

时间:2015-08-03 11:45:48

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

方案: 我有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中配置没有任何修改的路由,呈现所需的视图。

1 个答案:

答案 0 :(得分: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