我在数据库表中只有一列,它的内容是javascript链接,如
<script src="some src"></script>
或javascript代码,如
<script>
some code
<script>
所以我的问题是有可能纠正在cshtml文件中渲染javascript吗?
答案 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编码,我希望您完全信任脚本内容值:)。如果您不遵循先前的声明,请阅读脚本注入攻击。