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

resultados como se esperaba de acuerdo a las rutas asignadas:ASP.NET MVC ActionLink con LinkText = URL absoluta

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

que sin embargo, no necesito decir Share Me sino para mostrar la URL absoluta, así como utilizar la URL absoluta como el href:

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

siento que esto no es una tarea difícil, pero siendo muy verde en la lucha contra MVC estoy teniendo dificultades para comprender.

+0

¿Qué beneficio podría haber en requerir la URL absoluta como href? –

+0

compartiendo la URL con jQuery o en un correo electrónico? – Stefanvds

+0

En este último caso, entiendo que al hacer clic con el botón derecho en una URL (en cualquier navegador) y seleccionar "Copiar ubicación de enlace" siempre * se devolverá la URL absoluta, independientemente de si se utilizó una URL relativa. Para el primero, ¿por qué sería útil incluso en jQuery tener URL absolutas? Las URL relativas deberían funcionar bien en jQuery tanto como lo hace para los enlaces normales. –

Respuesta

9

En lugar de usar Html.ActionLink, debería echar un vistazo a Url.RouteUrl (que ActionLink usa internamente de todos modos). Algo así como ...

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

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

Tenga en cuenta que el primer parámetro es el nombre de la ruta.

+0

Exactamente lo que estaba buscando, ¡gracias! –

+0

Probar esto y el @Modelo.nombre de usuario está fallando en la vista. ¿Cómo se accede a ViewData desde la plantilla de visualización? –