渲染存储在数据库中的javascript

时间:2018-05-28 15:45:43

标签: javascript html asp.net asp.net-mvc umbraco

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

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

或javascript代码,如

<script>
some code
<script>

所以我的问题是有可能纠正在cshtml文件中渲染javascript吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

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

默认情况下,razor将使用前缀@对任何c#code / expression的返回值进行HTML编码。但Raw方法将返回非HTML编码的标记,这是您在这种情况下所需的。

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