2008-11-10 18 views
11

que necesitan ayuda con esta secuencia,rutas ASP.NET MVC

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

Cuando llamo http://localhost:5060/blog/Archive/2008/11, recoge el año y mes y lo envía al controlador. Pero cuando intento http://localhost:5060/blog/Archive/2008
lo envía al controlador, pero el parámetro del año es nulo y también lo son los demás parámetros.

+1

Xenph Yan gracias por el corrector ortográfico – Nesizer

Respuesta

11

¿Tiene alguna otra ruta para Blog/Archive/{something}?

Usa la Routing Debugger para ver qué ruta realmente es golpeada, lo más probable es que no esté llegando a esa ruta.

+0

Recomendamos encarecidamente el depurador de enrutamiento! –

+0

verifique mis respuestas gracias por la ayuda que funciona ahora – 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" 
     , 
     }); 

    } 

encontró el error

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

es antes

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

Subnus, me di cuenta en el código que tiene routes.IgnoreRoute ("favicon.ico"); No creo que esto se requiera con MVC 1.0 correcto porque el período ya no se ignora ¿correcto?

+0

esta pregunta fue respecto a la Beta 2 de asp.net mvc y no a la versión de lanzamiento de mvc y la pregunta no era sobre la ruta ignorada – Nesizer

Cuestiones relacionadas