我正在将c#MVC2项目升级到c#MVC4。
以下是MVC2中的方案
输入字符串(来自数据库)
Model.text="<p>Hi<br>hello!<br>you there</p>"
输出(在视图中呈现) 使用
呈现 <%=Model.text %>
Hi
hello!
you there
以下是MVC4中的方案
输入字符串(来自数据库)
Model.text="<p>Hi<br>hello!<br>you there</p>"
输出(在视图中呈现) 使用
呈现@Model.text
<p>Hi<br>hello!<br>you there</p>
我试过
@HttpUtility.HtmlDecode(Model.text)
@HttpUtility.HtmlEncode(Model.text)
没有任何帮助...
我在MVC4 asked here中遇到了类似的问题(ajax结果使用html标签而不是实际的html呈现)
我的一些设置是否让我烦恼?或者是与HTML 5有关或我在使用MVC4时遗漏了什么。 请帮忙!!
答案 0 :(得分:35)
这应该可以解决问题:
@Html.Raw(Model.text)
答案 1 :(得分:5)
如果您不希望对文本进行编码,则该文本应为IHtmlString类型。字符串文本默认编码。
在你的情况下,
Model.text = MvcHtmlString.Create("<p>Hi<br>hello!<br>you there</p>");
也可以做到这一点。
答案 2 :(得分:1)
在控制器端
viewbag.msg="hello";
在html.cs razor视图中
@Html.Raw(viewbag.msg)