2009-08-14 23 views
9

che sto buiding un UrlHelper per un percorso come in best practicesUrl.RouteUrl restituisce null

il problema è che il valore restituito è sempre nullo durante il debug in trovato che

Url.RouteUrl (" x ") di ritorno nullo

Url.RouteCollection [" x "] tornare percorso

che sto cercando di fare:

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

non riesco a vedere dove sto facendo qualcosa di sbagliato

+0

Nella tua Global.asax, stai in realtà registrando un percorso denominato "X"? – womp

+0

sì c'è un percorso registrato come routes.MapRoute ("X", "/ category/{id}/{category}", new {controller = "category", action = "List"}) – freddoo

risposta

15

Sembra che questo è causato perché non è stato specificato un valore predefinito per {id} e {category} al momento della registrazione i percorsi.

Url.RouteUrl("x") restituirà null perché non esiste alcun valore per l'ID e la categoria forniti e la definizione della route non ha un valore predefinito.

Penso che troverete se si aggiorna la voce di percorso per specificare un valore predefinito per ID e categoria questo risolverà il problema. In alternativa, se sei sicuro di sempre fornire un valore per ID e categoria, puoi farne a meno.

Per quanto riguarda l'effettivo metodo di supporto Url Categoria(), che deve essere funzionante correttamente come-è se si sta fornendo un valore non nullo o vuoto per ID e categoria. Ho letteralmente copiato il codice e funziona per me.

+2

Ho impostato tutto le impostazioni predefinite e sto ancora avendo questo problema. – Shimmy

0

Per qualche motivo ero ancora in esecuzione la release candidate MVC Ho installato il MVC 1.0 e ora funziona benissimo