2012-04-24 9 views
5

Duplicar posible:
How to I find the absolute url of an action in ASP.NET MVC?
Asp MVC Action link absolute url¿Generar URL completo en MVC?

Hola,

¿Existe una manera fácil de generar la URL completa de una acción específica? He intentado esto:

urlHelper.Action("Action", "Controller") 

Pero esto genera una "\".

BestRegards

Edición 1: He probado este:

urlHelper.Action("List", "Ad", null, "http"); 

sino que sólo devuelve: localhost: 16055. Esperaba algo como localhost: 16055/Ad/List?

+0

¿Esto está en el contexto de una vista, o en el código del controlador? – Tejs

+0

¿Prefijo la información de host/protocolo? –

Respuesta

15

Uso Html.ActionLink ("Título del Enlace", "Acción", "controlador")

Para generar un uso enlace completo:

@Html.ActionLink("Link Title", "Action", "Controller", "http", "www.mysampledomain.com", 
       "_blank", new {id = paramValue}, new { @class="someClass" }) 

Esa es la sobrecarga de extensión con todos los parámetros que puede especificar Echar un vistazo a este artículo de MSDN http://msdn.microsoft.com/en-us/library/dd492938.aspx

Para generar a partir de Controlador de utilizar este código:

var url = UrlHelper.GenerateUrl(null, "MyAction", "MyController", "http", "www.mydomain.com", String.Empty, null, RouteTable.Routes, this.ControllerContext.RequestContext, false); 

variable de URL contendrá una representación de cadena de su URL. Se puede almacenar en ViewBag como:

ViewBag.MyUrl = UrlHelper.GenerateUrl(null, "MyAction", "MyController", "http", "www.mydomain.com", String.Empty, null, RouteTable.Routes, 
             this.ControllerContext.RequestContext, false); 

De lo llaman Ver como:

@ViewBag.MyUrl 

Esa debe ser la misma.

+0

¿Cómo hago esto desde una acción del controlador? – Banshee

+2

Html.ActionLink genera un enlace. Si desea la URL completa, use el ayudante de Url, Url.Action. Una de las sobrecargas en ese método le permite especificar el esquema y al hacerlo generará una URL completamente calificada, como http: // localhost: 1234/controller/action –

+0

No necesariamente. Html.ActionLink tiene una sobrecarga que puede crear un enlace completo también. –

0

Url.action genera un pariente de url. Para generar una URL absoluta, puede ver esto: How do I find the absolute url of an action in ASP.NET MVC?

+0

He intentado esto: urlHelper.Action ("Lista", "Anuncio", nulo, "http"); pero solo devuelve: http: // localhost: 16055 /. Esperaba algo como http: // localhost: 16055/Ad/List ?? – Banshee