2010-09-30 4 views
1

Je veux ajouter une route simple à mon webapp, mais ça ne fonctionne pas et je ne sais pas pourquoiASP.NET MVC 2 problèmes de routage avec chaîne

Code

dans Global.asax.cs:

routes.MapRoute(
      "BrowseGenre", 
      "{controller}/{action}/{genre}", 
      new {controller = "Store", action = "Browse", genre = UrlParameter.Optional} 
     ); 

code dans StoreController.cs:

// GET: /Store/Browse 
    public ActionResult Browse(string genreName) 
    { 

     var genreModel = storeDB.Genres.Include("Albums").Single(g => g.Name == genreName); 
     //.... 

genreName est toujours nulle

les ActionLinks sont générés corr ectement (comme domain.com/Store/Browse/Jazz

Répondre

2

Le paramètre d'action doit être appelé genre au lieu de genreName (de la même manière il Uis appelé dans votre itinéraire):

public ActionResult Browse(string genre) 
+0

@Rup, oui correct. –

0

changer votre type anonyme

new {controller = "Store", action = "Browse", genre = UrlParameter.Optional} 

à

new {controller = "Store", action = "Browse", genreName = UrlParameter.Optional} 

OUChangez le nom de l'argument en action de "genreName" en "genre" de sorte que le nom du membre dans le type anonyme corresponde au nom de l'argument dans votre méthode d'action.