使用子域进行路由

时间:2010-06-20 18:54:04

标签: asp.net-mvc model-view-controller routing routes

我有一个MVC网站,其中有3个主要组件

  1. 具有路径/成员/ {controller} / {action} / {id}
  2. 的成员区域
  3. 将响应任何子域的单个页面,例如user1.example.com/{controller}/{action}/{id },user2.example.com/{controller} / {action} / {id}
  4. 主网站将回复www.example.com/{controller} / {action} / {id}
  5. 下的任何网址

    处理允许上述3个项目共存的路线的最简单方法是什么?我已经尝试了global.asax.cs文件中的许多MapRoutes,并且还基于RouteBase创建了一个新类但没有太多运气。

1 个答案:

答案 0 :(得分:1)

听起来你正朝着正确的方向前进 - 基本上你需要创建一个自定义路线来查看请求并构建路线值字典。有人已经创建了一个很好的实现,而不是重新发明轮子,它允许你在域中包含占位符,如下所示:

routes.Add("DomainRoute", new  DomainRoute(
"{controller}.example.com",  "{action}/{id}",
new { controller = "Home", action = "Index", id = "" }));

http://blog.maartenballiauw.be/post/2009/05/20/ASPNET-MVC-Domain-Routing.aspx