How do I render HTML from the Viewbag using MVC3 Razor

Htmlasp.net Mvcasp.net Mvc-3RazorViewbag

Html Problem Overview


I am trying to pass a form element into an MVC3 view by using the Viewbag and simply write the HTML to the page ...

In controller:

ViewBag.myData = "<input type=""hidden"" name=""example"" value=""examplevalue"">";

In view (I know I could use a helper for the form):

<form action="http://exampleurl/examplepage" method="post" id="example-form">
@ViewBag.myData
<input type="hidden" name="anotherexample" value="anotherexamplevalue" />
</form>

This renders the myData as text in the HTML i.e.:

 &lt;type="hidden" name="example" value="examplevalue"&gt; 

So my question is how do I get Razor to do the equivalent of older:

<%= myData %>

and not replace the <>

Thanks Paul

Html Solutions


Solution 1 - Html

Use @Html.Raw(ViewBag.Mydata).

Solution 2 - Html

This should do the job

 @Html.Raw((String)ViewBag.myData)

MSDN: This method wraps HTML markup using the IHtmlString class, which renders unencoded HTML.

You need to be careful with accepting and displaying un-encoded HTML.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSunriseView Question on Stackoverflow
Solution 1 - HtmlYngve B-NilsenView Answer on Stackoverflow
Solution 2 - Htmluser338195View Answer on Stackoverflow