代码之家  ›  专栏  ›  技术社区  ›  Esteban Araya

虚荣MVC路线?

  •  2
  • Esteban Araya  · 技术社区  · 15 年前

    我想要一个类似的路由:www.abc.com/companyname/controller/action/id 然而,所有的公司名称都需要映射到同一个“基础”控制器上,以获得名称的含义。我只需要CompanyName进行身份验证。

    另外,如果没有提供CompanyName,我需要映射到一组不同的控制器。

    我该怎么做?我也会感谢一个好的路由资源,所以我不必问这样的问题。

    3 回复  |  直到 15 年前
        1
  •  4
  •   womp    15 年前
    routes.MapRoute(
        "CompanyRoute",                                        
        "{companyName}/{controller}/{action}/{id}",           
        new { controller = "MyBaseCompanyController", action = "Index", id = "" }  
    );
    
    routes.MapRoute(
        "NoCompanyRoute",
        "{controller}/{action}/{id}",
        new {controller = "DifferentDefaultController", action = "Index", id = "" });
    

    路由是一个非常复杂的主题,但它在 Professional ASP.Net MVC 1.0 . 对于在线资源,我建议 starting here ,然后返回堆栈溢出;)

        2
  •  1
  •   vijaysylvester    15 年前

    如果您希望解决路由引起的错误。我建议使用以下工具,我发现它非常有用。

    Route Debugger

        3
  •  0
  •   Lance Fisher    15 年前

    转到global.asax.cs,在“默认”路由之前将以下路由添加到registerRoutes()方法中:

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