如何使用MVC3 Razor从Viewbag中呈现HTML

72

我试图使用Viewbag将一个表单元素传递到MVC3视图中,并通过将HTML写入页面来实现...

在控制器中:

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

在视图中(我知道我可以使用helper来处理表单):

<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个回答

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

22

这应该可以完成工作

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

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

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


1
非常感谢。HTML 将是一个支付处理器预先加密,所以应该没问题。谢谢。 - Sunrise

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接