如何使用MVC3 Razor从Viewbag渲染HTML

Sun*_*ise 65 html asp.net-mvc razor viewbag asp.net-mvc-3

我试图通过使用Viewbag将表单元素传递到MVC3视图,并简单地将HTML写入页面...

在控制器中:

ViewBag.myData = "<input type=""hidden"" name=""example"" value=""examplevalue"">";
Run Code Online (Sandbox Code Playgroud)

在视图中(我知道我可以使用表单的帮助器):

<form action="http://exampleurl/examplepage" method="post" id="example-form">
@ViewBag.myData
<input type="hidden" name="anotherexample" value="anotherexamplevalue" />
</form>
Run Code Online (Sandbox Code Playgroud)

这将myData呈现为HTML中的文本,即:

 &lt;type="hidden" name="example" value="examplevalue"&gt; 
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我如何让Razor做相当于旧的:

<%= myData %>
Run Code Online (Sandbox Code Playgroud)

而不是取代<>

谢谢保罗

Yng*_*sen 171

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


小智 21

这应该做的工作

 @Html.Raw((String)ViewBag.myData)
Run Code Online (Sandbox Code Playgroud)

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

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