如何使用MVC3 Razor从Viewbag呈现HTML


67

我正在尝试通过使用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 %>

而不是替换<>

谢谢保罗

Answers:



22

这应该做的工作

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

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

您需要谨慎接受和显示未编码的HTML。


1
非常感谢。HTML将是付款处理器的后期加密,因此应该没问题。谢谢
日出,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.