2008-11-10 7 views
11

je besoin d'aide avec cette feuille de routeitinéraires ASP.NET MVC

routes.MapRoute("Blog_Archive", 
       "Blog/Archive/{year}/{month}/{day}", 
       new { 
         controller = "Blog", 
         action = "archive", 
         year = "", 
         month = "", 
         day = "", 
         page = 0 
        }); 

Quand j'appelle http://localhost:5060/blog/Archive/2008/11, il prend l'année et le mois et l'envoie au contrôleur. Mais quand j'essaye http://localhost:5060/blog/Archive/2008
il l'envoie au contrôleur mais le paramètre d'année est nul et ainsi sont tous les autres paramètres.

+1

Xenph Yan merci pour le correcteur orthographique – Nesizer

Répondre

11

Avez-vous d'autres itinéraires pour Blog/Archive/{something}?

Utilisez le Routing Debugger pour voir quel itinéraire est réellement touché, il est fort probable qu'il n'atteigne pas cette route.

+0

Recommande fortement le débogueur de routage! –

+0

vérifier mes respones merci pour l'aide cela fonctionne maintenant – Nesizer

3
public static void RegisterRoutes(RouteCollection routes) 
    { 

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.IgnoreRoute("favicon.ico"); 

     routes.MapRoute(
      "Blog", 
      "Blog/{action}/{id}", 
      new 
      { 
       controller = "Blog", 
       action = "show", 
       id = "" 
      }); 

     routes.MapRoute("Blog_Archive", "Blog/Archive/{year}/{month}/{day}", 
      new { 
       controller = "Blog", 
       action = "archive", 
       year = "", 
       month = "", 
       day = "", 
       page =0 
      }); 

     routes.MapRoute(
      "Xfire",          
      "Xfire/{action}/{id}",      
      new 
      { 
       controller = "Xfire", 
       action = "show", 
       id = "" 
      }); 

     routes.MapRoute(
      "Photos",           
      "Photos/{action}/{id}",       
      new 
      { 
       controller = "Photos", 
       action = "show", 
       id = "" 
      }); 

     routes.MapRoute("About","About", 
         new 
         { 
          controller = "home", 
          action = "about" 
         }); 

     routes.MapRoute("Default", "{controller}/{action}/{id}", 
      new 
      { 
       controller = "Blog", 
       action = "show", 
       id = "" 
      }); 

     routes.MapRoute("Error", "{*url}", new 
     { 
      controller = "Home", 
      action = "Http404" 
     , 
     }); 

    } 

trouvé l'erreur

routes.MapRoute("Blog","Blog/{action}/{id}", 
        new { 
      controller = "Blog", 
         action = "show", 
         id = "" 
         }); 

est avant

routes.MapRoute("Blog_Archive", "Blog/Archive/{year}/{month}/{day}", 
        new { 
         controller = "Blog", 
         action = "archive", 
         year = "", 
         month = "", 
         day = "", 
         page =0 
         }); 
0

Subnus, je remarqué dans votre code que vous avez routes.IgnoreRoute ("favicon.ico"); Je ne pense pas que cela est nécessaire avec MVC 1.0 droite parce que la période n'est plus ignorée correcte?

+0

cette question était je regarde la bêta 2 de asp.net mvc et pas la version maintenant disponible de mvc et la question n'était pas sur la route ignorée – Nesizer