Это не моя работа, но я должен был добавить ее в этот ответ.
Вот отличное решение этой проблемы. Maartin Balliauw написал код, который создает класс DomainRoute, который можно использовать очень похоже на обычную маршрутизацию.
http://blog.maartenballiauw.be/post/2009/05/20/ASPNET- MVC-Domain-Routing.aspx
Пример использования будет таким:
routes.Add("DomainRoute", new DomainRoute(
"{customer}.example.com", // Domain with parameters
"{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
))
;