Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Html编码/解码&;Html.Raw_C#_Asp.net Mvc_Entity Framework_Asp.net Mvc 5_Summernote - Fatal编程技术网

C# Html编码/解码&;Html.Raw

C# Html编码/解码&;Html.Raw,c#,asp.net-mvc,entity-framework,asp.net-mvc-5,summernote,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 5,Summernote,我听说不建议在Razor视图中使用HTML.Raw,如果是这样,我就有问题了 我正在使用实体框架与我的SQL DB交互。我还使用SummerNote作为前端的编辑器 现在我的视图代码在@{}块中,我相信它会进行一些编码/解码 该场景是,用户在SummerNote编辑器中输入一些文本,并应用一些格式(例如,使单词加粗),然后单击保存。这将生成一个HTML字符串并将其传递给我的控制器: 使用格式测试字符串。在视图中打印时,应使用HTML编码(使用@Model) 不要在其他任何地方编码或解码;不要在

我听说不建议在Razor视图中使用HTML.Raw,如果是这样,我就有问题了

我正在使用实体框架与我的SQL DB交互。我还使用SummerNote作为前端的编辑器

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

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


使用格式测试字符串。

在视图中打印时,应使用HTML编码(使用
@Model


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

在数据库中使用
HtmlEncode
HtmlEncode
没有实际意义case@StephenMuecke,谢谢你的回复。我也这么认为,我把它们拿走了。现在,如果我只是使用
@Model
打印,那么它将打印HTML。为了打印格式化字符串,我必须将其包装在
@Html.Raw
中。我不知道如何克服这个问题?但你的问题是什么?使用
@Html.Raw()?这就是我想弄明白的。所以使用Html.Raw不会造成任何安全威胁?请参考示例谢谢您的回复。删除控制器中的Html.Encode后,DB中的字符串看起来像:
使用格式测试字符串。

,我修改了视图以只进行编码:
@HttpUtility.HtmlEncode(@Model)
,但是当我刷新页面时,我看到以下不是格式化字符串:
pTest bstring/b带格式化。/p
@…
自动编码。您不应该调用任何编码方法。那么为了澄清DB中应该显示什么?我是否应该查看带有格式的测试字符串。

?是@b3hdad-这就是您应该存储的内容。谢谢,这样我做的方向是正确的。现在在演示时,如果我不执行@Html.Raw,那么我会看到Html而不是格式化字符串。我现在关心的是,Html.Raw是否构成安全威胁?