ASP.NET MVC4 - display HTML containing string as raw HTML

I have a string, read from a database, that contains HTML that I want to output. Despite applying HttpUtility.HtmlDecode(), the View always renders the string as encoded HTML (i.e. &lt;SPAN&gt; instead of <SPAN>).

I am using:

string test = WebUtility.HtmlDecode(myStr);
<span>@test</span>

I have tried:

string test = HttpUtility.HtmlDecode(myStr);
<span>@test</span>

<span>@HttpUtility.HtmlDecode(myStr)</span>

Upvotes: 2

Views: 4746

Answers (3)

trailmax
trailmax

Reputation: 35126

Use Html.Raw()

@Html.Raw("<span>Hello</span>")

All the output from helpers and other elements in Razor are put through HttpUtility.HtmlEncode, unless they implement IHtmlString. But your best option here is using Html.Raw()

Upvotes: 6

simone
simone

Reputation: 119

Try this helper method

@Html.Raw(myStr)

Upvotes: 2

James
James

Reputation: 2201

You need to use @Html.Raw:

@Html.Raw("<h1>Header</h1>")

Will output the text Header.

Upvotes: 3

Related Questions