2010-10-11 10 views
0

alors écrivez maintenant mon URL ressemble à domain.com \ MyAction? Var1 = x & var2 = y & var3 = z. Maintenant, afin de le rendre plus convivial et plus convivial, je veux abandonner cette façon d 'écrire et adopter ce genre d' url - doman.com \ MyAction \ x \ y \ z (évidemment, l 'ordre compte maintenant, ce qui n'avait pas d'importance dans l'URL précédente)mvc url réécrire

Quelle est la meilleure façon de procéder?

Actuellement:

return RedirectToAction("MyAction", new {var1 = x, var2= y, var3= z}); 

redirige la page DOMAIN.COM \ x var1 = y = z & var2 & var3 = t?.

Tout ce qui doit être fait à partir de ce moment ...?

+0

Veuillez vérifier la dernière réécriture d'attribut de méthode http://sreerejith.blogspot.in/2015/07/url-rewriting-in-mvc-4-attribute-routing.html –

Répondre

0

Ajouter une entrée de route avec tous ces paramètres (vérifiez votre global.asax):

routes.MapRoute(
    "MyAction", 
    "MyAction/{x}/{y}/{z}", 
    new 
    { 
     controller = "yourcontrollerhere", 
     action = "MyAction" 
     //default values if the parameters are optional: 
     //,x = UrlParameter.Optional 
    }); 
+0

"MyAction/{x}/{y}/{ z} ", mais comment rendre z optionnel quand x et y sont remplis et y optionnel quand x est rempli ... – TPR

+0

Vous ne pouvez pas rendre y optionnel avec cette URL que vous choisissez d'utiliser. Vous devez définir une URL qui délimite correctement les paramètres. Honnêtement, je ne suis même pas sûr que vous devriez faire ce changement,? Color = blue communique assez clairement l'intention, c'est-à-dire que vous ne semblez pas avoir un scénario hiérarchique par nature, donc seulement x/y/z vous causer des ennuis. Alors vous auriez des trucs comme/color/blue/height/10/width/20 et ce n'est pas plus sympa que? Color = blue & height = 10 & width = 20. – eglasius

+0

en fait, tant pis. Je n'ai pas bien expliqué ma question. – TPR

0

je voudrais vérifier le livre asp.net mvc roxio par scott gu et scott hanselman le premier chapitre sur la démo du dîner nerd est gratuit et crois qu'il couvre le routage url aspworkshops.com est également une bonne ressource pour mvc choses son par stephen wather qui a écrit le livre sams déchaîné sur mvc

0

Essayez avec quelque chose comme ceci:

var route = new System.Web.Routing.RouteValueDictionary(); 
route.Add("var1", "x"); 
route.Add("var2", "x"); 
route.Add("var3", "x"); 
return RedirectToAction("MyAction", route);