Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I bypass the HTML encoding when using Html.ActionLink in Mvc?

Whenever I use Html.ActionLink it always Html encodes my display string. For instance I want my link to look like this:

<a href="/posts/422/My-Post-Title-Here">More&hellip;</a> 

it outputs like this: More&hellip;

&hellip is "..." incase you were wondering.

However the actionlink outputs the actual text "&hellip;" as the link text. I have the same problem with if I want to output this:

<a href="/posts/422/My-Post-Title-Here"><em>My-Post-Title-Here</em></a> 

I wind up with: <em>My-Post-Title-Here</em>

Any idea how to do this?

like image 301
Micah Avatar asked Jan 08 '09 01:01

Micah


1 Answers

It looks like ActionLink always uses calls HttpUtility.Encode on the link text. You could use UrlHelper to generate the href and build the anchor tag yourself.

<a href='@Url.Action("Posts", ...)'>More&hellip;</a> 

Alternatively you can "decode" the string you pass to ActionLink. Constructing the link in HTML seems to be slightly more readable (to me) - especially in Razor. Below is the equivalent for comparison.

@Html.ActionLink(HttpUtility.HtmlDecode("More&hellip;"), "Posts", ...) 
like image 147
tvanfosson Avatar answered Oct 11 '22 15:10

tvanfosson