2012-04-24 14 views
5

Eventuali duplicati:
How to I find the absolute url of an action in ASP.NET MVC?
Asp MVC Action link absolute urlGenera URL completo in MVC?

Ciao,

C'è un modo semplice per generare l'URL completo per un'azione specifica? Ho provato questo:

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

Ma questo genera un "\".

BestRegards

Edit 1: Ho provato questo:

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

ma restituisce solo: localhost: 16055. Mi aspettavo qualcosa come localhost: 16055/Ad/List?

+0

È nel contesto di una vista, o nel codice del controller? – Tejs

+0

Basta anteporre le informazioni sull'host/protocollo? –

risposta

15

Usa Html.ActionLink ("Link Titolo", "Azione", "Titolare")

Per generare un uso link completo:

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

Questo è il sovraccarico di estensione con tutti i parametri può specificare. Date un'occhiata a questo articolo di MSDN http://msdn.microsoft.com/en-us/library/dd492938.aspx

Per generare dal controller di questo codice:

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

variabile url conterrà una stringa che rappresenta l'URL. È possibile memorizzare in ViewBag come:

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

Da Vedere lo chiamano come:

@ViewBag.MyUrl 

che dovrebbe essere esso.

+0

Come faccio a farlo da un'azione del controller? – Banshee

+2

Html.ActionLink genera un collegamento. Se si desidera l'URL completo, utilizzare l'helper Url, Url.Action. Uno degli overload su tale metodo consente di specificare lo schema e in tal modo genererà un URL completo, come http: // localhost: 1234/controller/action –

+0

Non necessariamente. Html.ActionLink ha un sovraccarico che può creare anche un collegamento completo. –

0

Url.action genera un relativo url. Per generare un url assoluto puoi vedere: How do I find the absolute url of an action in ASP.NET MVC?

+0

Ho provato questo: urlHelper.Action ("Elenco", "Annuncio", null, "http"); ma restituisce solo: http: // localhost: 16055 /. Mi aspettavo qualcosa come http: // localhost: 16055/Ad/List ?? – Banshee