Как мне рендерить HTML из Viewbag с помощью MVC3 Razor - PullRequest
63 голосов
/ 13 октября 2011

Я пытаюсь передать элемент формы в представление MVC3 с помощью Viewbag и просто записать HTML-код на страницу ...

В контроллере:

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

В поле зрения (я знаю, что мог бы использовать помощника для формы):

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

При этом myData отображается как текст в HTML, т. Е .:

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

Итак, мой вопрос: как заставить Razor сделать эквивалент старшего:

<%= myData %>

и не заменять <>

Спасибо Пол

Ответы [ 2 ]

168 голосов
/ 13 октября 2011

Использование @Html.Raw(ViewBag.Mydata).

21 голосов
/ 13 октября 2011

Это должно сделать работу

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

MSDN. Этот метод переносит разметку HTML с помощью класса IHtmlString, который отображает незашифрованный HTML.

Вы должны быть осторожны, принимая и отображая незашифрованный HTML.

...