2010-06-20 7 views
2

Je dispose d'un site MVC qui a 3 composantes principalesroutage avec des sous-domaines

  1. zone membre qui a le chemin/membres/{contrôleur}/{action}/{id}
  2. pages individuelles qui répondre à tout sous-domaine, par exemple user1.example.com/{controller}/{action}/{id}, user2.example.com/{controller}/{action}/{id}
  3. Site principal qui répondra à n'importe quelle URL sous www.example .com/{controller}/{action}/{id}

Quelle est la manière la plus simple de gérer les routes qui permettront aux trois éléments ci-dessus de coexister? J'ai essayé beaucoup de MapRoutes à partir du fichier global.asax.cs et j'ai aussi créé une nouvelle classe basée sur RouteBase mais sans avoir beaucoup de chance.

+0

Salut Graeme, est-il possible d'héberger une solution simple GitHub ou toute autre partie du web? J'adorerais voir ça fonctionner, essayer sans aucune chance: o ( – balexandre

Répondre

1

Il semble que vous vous dirigiez dans la bonne direction - vous devez essentiellement créer un itinéraire personnalisé qui examine la requête et construit le dictionnaire de valeurs de route. Plutôt que de réinventer la roue si quelqu'un a déjà créé une belle mise en œuvre qui vous permet d'inclure des espaces réservés dans le domaine lui-même comme ceci:

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

+0

J'ai réussi à le faire fonctionner à la fin en utilisant un mélange des deux techniques. – Graeme