Asp.net核心如何将html代码存储到数据库中并在以后的视图中显示它们?

时间:2016-12-02 00:37:28

标签: html asp.net

我在从数据库中读取html代码并显示它们时遇到问题。 在我的页面中看起来像这样:

enter image description here

我希望它看起来是:

enter image description here

我使用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从控制器传递到视图以进行显示。

那么这样做的正确方法是什么?感谢

1 个答案:

答案 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的内容,您处于危险区域,这是一种安全风险,因为用户可以编写恶意代码以在您的网站上执行。