我在从数据库中读取html代码并显示它们时遇到问题。 在我的页面中看起来像这样:
我希望它看起来是:
我使用TinyMCE将其存储到数据库中,代码如下:
teamContent.PageContent = WebUtility.HtmlEncode(edited_content); // edited_content is the html code I posted to controller to store.
_context.Update(teamContent);
_context.SaveChanges();
然后我使用以下代码解码我存储的html代码:
ViewBag.content = WebUtility.HtmlDecode(content);
ViewBag.content从控制器传递到视图以进行显示。
那么这样做的正确方法是什么?感谢
答案 0 :(得分:0)
ViewBag.content只能存储字符串,因此虽然您已将内容解码为html,但在.cshtml中处理时,它将被视为字符串。
继续进行的方法是告诉.cshtml如何处理ViewBag.content,在这种情况下,我们希望将它视为原始html。
如果你使用的是Razer,你将使用Html.Raw:
@Html.Raw(ViewBag.content)
否则,如果不使用Razer
<%= System.Web.HttpUtility.HtmlDecode(ViewBag.content) %>
请记住,如果用户可以编辑进入ViewBag.content的内容,您处于危险区域,这是一种安全风险,因为用户可以编写恶意代码以在您的网站上执行。