2009-07-21 7 views
3

Je me demandais s'il y a de toute façon pour atteindre une URL comme http://www.mycompany.com/user dans MVC J'ai essayé d'utiliser le crochet tout mais je n'ai pas réussi à faire passer l'utilisateur pour que je puisse faire la recherche.URL route Attraper tous

Merci

+1

Pouvez-vous préciser ce que vous entendez par 'n'a pas réussi à faire passer l'utilisateur'? Parlez-vous de la partie "utilisateur" de la route ou d'autres données que vous attendez? Ce sera probablement un problème de routage et la mise en place d'une route par défaut, ou celle d'un scénario spécifique, n'est pas trop difficile. – nkirkes

+0

si l'URL est http://www.mycompany.com/user Je m'attendrais à être routé à cet ActionResult public ActionResult Index (string userName) { // ce nom d'utilisateur param est toujours null ici quand il devrait être l'utilisateur // chaîne UserModel model = Data.GetUser (userName); retour vue (modèle); } – Sammy

Répondre

1

Quelque chose comme ça?

routes.MapRoute("User", 
    "{UserName}", 
    new { Controller = "User", Action = "Index", UserName = "" }); 

mise à jour:

ajouter cette contrainte à l ' "Utilisateur" route:

routes.MapRoute("User", 
    "{UserName}", 
    new { Controller = "User", Action = "Index", UserName = "" }, 
    new { UserName = @"(\w|-)+" } 
); 

ou ajouter cet itinéraire:

routes.MapRoute("Home", 
    String.Empty, 
    new { Controller = "Home", Action = "Index", Id = "" } 
); 
+0

Juste essayé, maintenant "using localhost" demandes maintenant pour la route par défaut "http: // localhost/MVCApp /" sont redirigés vers User Controller avec une chaîne vide pour le UserName – Sammy

+0

Vous me battre à la solution de contrainte. Merci beaucoup – Sammy

+0

Vous êtes les bienvenus :) –