How to properly encode links to external URL in MVC Razor

Eugene Goldberg picture Eugene Goldberg · Apr 15, 2014 · Viewed 48k times · Source

This view suppose to show a list of hyperlinks, each pointing to an external URL. The goal is for the user to click one of these links and have their browser open a new tab with the selected URL. Currently I have the following markup:

@Html.ActionLink("SomeSite", "http://subdomain.mydomain.com/SomeSite")

This markup produces:

http://localhost:58980/AccessInstance/http%3a/subdomain.mydomain.com/SomeSite

instead of :

http://subdomain.mydomain.com/SomeSite

What can I change in my markup to make this work as I expect?

Answer

rossipedia picture rossipedia · Apr 15, 2014

You don't need to use @Html.ActionLink for that. Just use a plain A tag:

<a href="http://subdomain.mydomain.com/SomeSite">SomeSite</a>

Html.ActionLink is specifically for generating links to actions defined in MVC controllers, in the same app. Since you're linking to an absolute URL, you don't need any of the functionality that Html.ActionLink provides.