首页 > 解决方案 > 渲染存储在数据库中的 javascript

问题描述

我在数据库表中只有一列,它的内容是 javascript 链接,如

<script src="some src"></script> 

或类似的javascript代码

<script>
some code
<script>

所以我的问题是可以在 cshtml 文件中更正渲染该 javascript 吗?

标签: javascripthtmlasp.netasp.net-mvcumbraco

解决方案


您可以Html.Raw在视图中使用该方法

@model YourViewModel
@Html.Raw(Model.YourScriptContent)

假设YourScriptContent是您在 GET 操作中设置脚本内容值的视图模型的属性。

public ActionResult Index()
{
   var vm = new YourViewModel();
   vm.YourScriptContent =  "<script>alert('testing');</script>";
   return View(vm);
}

默认情况下,razor 将对任何带有前缀的 c# 代码/表达式的返回值进行 HTML 编码@。但是该Raw方法将返回不是 HTML 编码的标记,这是您在这种情况下需要的。

由于您在渲染它时不是 HTML 编码,我希望您完全信任脚本内容值:)。如果您不遵循前面的陈述,请阅读有关脚本注入攻击的信息。


推荐阅读