2010-09-23 25 views
5
<%: Html.ActionLink("Share Me", "Index", "Mall", new { username = Model.Username }, null)%> 

risultati come previsto in base ai percorsi mappati:ASP.NET MVC ActionLink con LinkText = URL assoluto

<a href="/Mall/Username">Share Me</a> 

ho però bisogno di non dire Condividi me, ma per mostrare l'URL assoluto, così come utilizzare l'URL assoluto come href:

<a href="http://www.url.com/Mall/Username">http://www.url.com/Mall/Username</a> 

sento che questo non è un compito difficile, ma essendo molto verde nell'affrontare MVC sto attraversando un periodo difficile capire che fuori.

+0

Quale vantaggio potrebbe esserci nel richiedere l'URL assoluto come href? –

+0

condividendo l'URL con jQuery o in un'email? – Stefanvds

+0

Per quest'ultimo, la mia comprensione è che facendo clic con il pulsante destro su un URL (in qualsiasi browser) e scegliendo "Copia collegamento percorso" * sempre * restituirà l'URL assoluto indipendentemente dal fatto che sia stato utilizzato un URL relativo. Per il primo, perché sarebbe utile anche in jQuery avere URL assoluti? Gli URL relativi dovrebbero funzionare bene in jQuery tanto quanto i link normali. –

risposta

9

Piuttosto che usare Html.ActionLink, dovresti dare un'occhiata a Url.RouteUrl (che ActionLink usa comunque internamente). Qualcosa come ...

<% var myUrl = Url.RouteUrl("Default", new { action = "Mall", username = Model.Username }, Request.Url.Scheme).ToString() %> 

<a href="<%:myUrl%>"><%:myUrl%></a> 

Nota il primo parametro è il nome della rotta.

+0

Esattamente quello che stavo cercando, grazie! –

+0

Provare questo e @ Model.Username non funziona nella vista. Come si accede a ViewData dal modello di visualizzazione? –