2012-03-26 1 views
0

Je ne suis pas sûr que ce soit possible. Ce que je voudrais faire est d'avoir une URL comme:Problème de routage MVC 3 http://bleh.com/globalString/Controller/action

http://bleh.com/globalString/Controller/action 

Où « globalString » aurait besoin d'être retiré à analyser et configurer certaines variables. Cette chaîne est essentiellement le nom du client.

Ensuite, nous aurions le contrôleur et les actions comme d'habitude après cela. Comme une question légèrement supplémentaire lorsque le routage par défaut est configuré lors de la création d'une nouvelle application MVC dois-je supprimer le mappage qu'il crée ou mettre mon nouveau mappage avant ou après?

Merci, (comme vous pourriez être en mesure de dire c'est toujours ma première exploration dans MVC)

+0

Comment ce 'globalString' sera-t-il calculé? Vous mentionnez quelque chose au sujet d'un nom de client mais sur quoi ce nom de client dépend-il? –

Répondre

0

Il est possible, vous devez mettre cette règle avant itinéraire de mappage par défaut. Le moteur de route a recherché des cartes de route en fonction de l'ordre d'ajout. Donc, vous devez mettre les règles plus spécifiques à venir. Mais comme votre/globalString/Controller/action est en conflit avec la route par défaut/Controller/action/id, il n'y a aucun moyen pour le moteur de route d'entrer dans la route/Controller/action/id. Vous devez donc ajouter une contrainte à la première. Tels que les modèles regex etc.

0

Vous pouvez remplacer la méthode public override RouteData GetRouteData(HttpContextBase httpContext) dans System.Web.Routing.Route. Là, vous pouvez faire presque tout ce qui concerne la route.