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

wyniki zgodnie z oczekiwaniami według odwzorowanych tras:ASP.NET MVC actionlink z linktext = absolutny URL

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

ja jednak potrzebne żeby nie powiedzieć Poleć mnie ale aby pokazać bezwzględny adres URL, a także użyj bezwzględny adres URL jako href:

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

czuję, że to nie jest to trudne zadanie, ale jest bardzo zielony w walce MVC mam twardy czas na zastanawianie go.

+0

Jakie korzyści może przynieść bezwzględny URL jako href? –

+0

udostępnianie adresu URL z jQuery lub e-mailem? – Stefanvds

+0

W tym ostatnim przypadku kliknięcie prawym przyciskiem myszy adresu URL (w dowolnej przeglądarce) i wybranie opcji "Kopiuj adres linku" spowoduje, że * zawsze * zwróci bezwzględny adres URL niezależnie od tego, czy użyto względnego adresu URL. W pierwszym przypadku, dlaczego byłoby pomocne nawet w jQuery mieć bezwzględne adresy URL? Względne adresy URL powinny działać prawidłowo w jQuery tak samo, jak w przypadku normalnych linków. –

Odpowiedz

9

Zamiast używać Html.ActionLink, powinieneś rzucić okiem na Url.RouteUrl (którego ActionLink używa wewnętrznie). Coś jak ...

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

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

Uwaga pierwszym parametrem jest nazwa trasy.

+0

Dokładnie tego, czego szukałem, dzięki! –

+0

Próba tego i parametr @ Model.Username zawodzi w widoku. Jak uzyskać dostęp do danych ViewData z szablonu widoku? –