虚荣MVC路线?

时间:2009-09-01 04:24:58

标签: asp.net-mvc routing

我希望有一条类似的路线:www.abc.com/companyName/Controller/Action/Id 但是,所有公司名称都需要映射到相同的“基础”控制器,关注名称。我只需要companyName进行身份验证。

另外,如果没有提供companyName,我需要完全映射到另一组控制器。

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

3 个答案:

答案 0 :(得分:4)

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,然后回到Stack Overflow;)

答案 1 :(得分:1)

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

Route Debugger

答案 2 :(得分:0)

转到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
);