72

我正在尝试使用 Viewbag 将表单元素传递到 MVC3 视图中,并将 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 %>

而不是替换 <>

谢谢保罗

4

2 回答 2

183

使用@Html.Raw(ViewBag.Mydata).

于 2011-10-13T15:28:08.700 回答
22

这应该做的工作

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

MSDN:此方法使用 IHtmlString 类包装 HTML 标记,该类呈现未编码的 HTML。

您需要小心接受和显示未编码的 HTML。

于 2011-10-13T15:26:31.807 回答