2009-08-14 18 views
9

estoy buiding un UrlHelper para una ruta como en best practicesUrl.RouteUrl devuelve null

el problema es que el valor devuelto es siempre nula al depurar en descubrieron que

Url.RouteUrl (" x ") de retorno nula

Url.RouteCollection [" X "] volver Ruta

que estoy tratando de hacer:

public static string Category(this UrlHelper helper, int Id, string category) 
{ 
    return helper.RouteUrl("X", new {id = Id, category= category}); 
} 

no puedo ver donde estoy haciendo algo mal

+0

En su Global.asax, está en realidad se está registrando una ruta denominada "X"? – womp

+0

sí, hay una ruta registrada como routes.MapRoute ("X", "/ category/{id}/{category}", new {controller = "category", action = "List"}) – freddoo

Respuesta

15

Parece que esto se produce porque no se ha especificado un valor predeterminado para {id} y {} la categoría al registrar sus rutas.

Url.RouteUrl("x") devolverá nulo porque no hay ningún valor para identificación y categoría proporcionada, y la definición de su ruta no tiene un valor predeterminado.

Creo que encontrará que si actualiza su entrada de ruta para especificar un valor predeterminado para el id y la categoría, esto resolverá su problema. Alternativamente, si está seguro de siempre proporcionar un valor para el id y la categoría, puede prescindir de él.

En lo que respecta a su actual método de ayuda de Url Category(), debería funcionar perfectamente tal como está si proporciona un valor no nulo o vacío para el id y la categoría. Literalmente copié el código y funciona para mí.

+2

He configurado todos los valores predeterminados y todavía tengo este problema. – Shimmy

0

Por alguna razón, yo todavía estaba corriendo la versión candidata MVC he instalado el MVC 1.0 y ahora funciona bien

Cuestiones relacionadas