2009-04-18 6 views
6

Ho un controller denominato "AccountController" e un'azione denominata "ResetPassword". Dal markup HTML che posso fare qualcosa di simile:ottenere automaticamente il percorso verso l'azione del controller (url)

<%= Html.ActionLink("LinkText", "ResetPassword", "AccountController") %> 

e il risultato sarà l'URL corretto. C'è un modo per farlo a livello di programmazione? Sto cercando di ottenere l'url come una stringa in un'altra classe, ma System.Web.Mvc.HtmlHelper non ha un metodo statico ActionLink() e la creazione di un'istanza della classe non ce l'ha neanche.

Nota: se provo a creare istanze di HtmlHelper o UrlHelper I, ho bisogno di riferimenti al contesto di visualizzazione o al contesto di richiesta e non riesco a capire come ottenere quelli dal controller (per passare al mio metodo di classe)

risposta

10

Utilizzare invece Url.Action.

+0

Quando provo a creare un'istanza di UrlHelper richiede un "requestContext". Come ottengo la richiestaContext così posso creare un'istanza UrlHelper? – codette

+0

Se si utilizza un controller, utilizzare la proprietà HttpContext del controller. –

+0

Sono in una classe esterna al controller e HttpContext.Current non funzionerà. Ottengo un errore di sintassi, è il tipo sbagliato. – codette