代码之家  ›  专栏  ›  技术社区  ›  Buildstarted

ASP.NET MVC 2-向外部控制器添加路由

  •  0
  • Buildstarted  · 技术社区  · 14 年前

    是否可以向外部程序集中定义的控制器添加路由?到目前为止我所看到的一切似乎都没有考虑到。

    基于以下帮助

    我已经添加了以下两个路由作为测试,不管我做什么,它都会默认为“默认”路由……但是,如果我将“浏览”控制器的名称更改为类中另一个控制器的名称,它会正常工作。

        routes.MapRoute(
            "Browse",
            "browse/{controller}/{action}/{id}",
            New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional},
            New String() {"MySite.Browse.Controllers"})
    
        routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}",
            New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional},
            New String() {"MySite.Controllers"})
    

    有什么想法吗?

    似乎上面可能只是MVC1,因为它实际上在我的外部程序集中没有调用browsecontroller。

    1 回复  |  直到 14 年前
        1
  •  1
  •   MyNameIsJob    14 年前

    此特定站点可能有助于: http://dotnet.dzone.com/news/how-call-controllers-external-

    它的剪辑贴在这里讨论

    Route externalBlogRoute = new Route(
        "blog/{controller}/{action}/{id}",
        new MvcRouteHandler()
    );
    
    externalBlogRoute.DataTokens = new RouteValueDictionary(
        new {
             namespaces = new[] { "ExternalAssembly.Controllers" }
        });
    
    routes.Add("BlogRoute", externalBlogRoute);
    
    
    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = "" },
        new[] { "ExternalAssembly.Controllers" }
    );