How can I interpret HTML from TempData using MVC4?

I am trying to display a TempData list with an HTML flag inside. Is it possible to interpret ballistics and not only display it?

This is a sample code to illustrate what I want.

Controller:

 List<string> ls = new List<string>(); ls.Add("<div> First div </div>"); ls.Add("<div> Another div </div>"); ls.Add("<div> Another div again </div>"); TempData.Add("ModelLs", ls); 

View:

 var ls = (List<string>)TempData["ModelLs"]; foreach (string str in ls) { @str } 

And I would like to display 3 "real" divs on my page (and not 3 "<div> .... </div>" ). How can i do this?

+4
source share
3 answers

If I understood you correctly, would you like to display the string as HTML markup?

 var ls = (List<string>)TempData["ModelLs"]; foreach (string str in ls) { @(new HtmlString(str)) } 

Html.Raw() also works:

 var ls = (List<string>)TempData["ModelLs"]; foreach (string str in ls) { @(Html.Raw(str)) } 
+3
source

Use Html.Raw , it returns markup that is not HTML encoded.

 var ls = (List<string>)TempData["ModelLs"]; foreach (string str in ls) { Html.Raw(str) } 
+5
source

Below code worked fine for me

  @{var ls = (List<string>)TempData["ModelLs"];} <ul> @foreach (var str in ls) { if (!string.IsNullOrEmpty(str)) { <li> @Html.Label(str) </li> <br /> } } </ul> 
+1
source

Source: https://habr.com/ru/post/1492905/


All Articles