首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >超文本标记语言编码/解码与Html.Raw

超文本标记语言编码/解码与Html.Raw
EN

Stack Overflow用户
提问于 2018-07-04 07:38:18
回答 1查看 4.7K关注 0票数 1

我听说不推荐在Razor视图中使用HTML.Raw,如果是这样的话,我就有问题了。

我使用Entity Framework与我的SQL DB进行交互。另外,我使用SummerNote作为前端的编辑器。

现在我的视图代码在@{ }块中,我相信它会进行一些编码/解码。

场景是,用户在SummerNote编辑器中输入一些文本,并应用一些格式(例如,将单词加粗),然后单击saves。这将生成一个HTML字符串并将其传递给我的控制器:

代码语言:javascript
复制
<p>Test <b>string </b>with formatting.</p>

在控制器中,我使用HTML encode来编码:

代码语言:javascript
复制
customerData.Description = HttpUtility.HtmlEncode(summerNoteFieldData);

然后把它发送到DB。在DB中,它看起来如下所示:

代码语言:javascript
复制
&lt;p&gt;Test &lt;b&gt;string &lt;/b&gt;with formatting.&lt;/p&gt;

然后在展示时的视图中,我这样做:

代码语言:javascript
复制
<div class="summernote">@Html.Raw(@HttpUtility.HtmlDecode(@Model))</div>

因此,如果我删除Html.Raw,我将看到上面的超文本标记语言字符串,而不是格式化的字符串。

这是安全和正确的方法吗?还能改进吗?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-04 07:39:52

在视图中打印时(使用@Model),您应该对HTML进行编码。

不要在其他地方编码或解码;不要将编码的内容存储在数据库中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51164075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档