2009-04-18 22 views
6

Tengo un controlador llamado "AccountController" y la acción llamada "ResetPassword". Desde el marcado html puedo hacer algo como:obtener la ruta a la acción del controlador (url) programáticamente

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

y dará salida a la URL correcta. ¿Hay alguna manera de hacer esto programáticamente? Estoy tratando de obtener la url como una cadena en otra clase, pero System.Web.Mvc.HtmlHelper no tiene un método estático ActionLink() y la creación de una instancia de la clase tampoco lo tiene.

Nota: Si intento crear instancias de HtmlHelper o UrlHelper, entonces necesito referencias al Contexto de vista o al Contexto de solicitud y no puedo encontrar la forma de obtenerlos del controlador (para pasar a mi método de clase)

Respuesta

10

Use Url.Action en su lugar.

+0

Cuando intento crear una instancia de UrlHelper, solicita un "requestContext". ¿Cómo obtengo el requestContext para poder crear una instancia de UrlHelper? – codette

+0

Si está en un controlador, use la propiedad HttpContext del controlador. –

+0

Estoy en una clase fuera del controlador y HttpContext.Current no funcionará. Obtengo un error de sintaxis, es del tipo incorrecto. – codette

Cuestiones relacionadas