2

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>
John 'Mark' Smith
  • 2,564
  • 9
  • 43
  • 69

3 Answers3

6

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()

trailmax
  • 34,305
  • 22
  • 140
  • 234
3

You need to use @Html.Raw:

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

Will output the text Header.

James
  • 2,195
  • 1
  • 19
  • 22
2

Try this helper method

@Html.Raw(myStr)
SilverlightFox
  • 32,436
  • 11
  • 76
  • 145
simone
  • 119
  • 4