javascript - 渲染存储在数据库中的 javascript
问题描述
我在数据库表中只有一列,它的内容是 javascript 链接,如
<script src="some src"></script>
或类似的javascript代码
<script>
some code
<script>
所以我的问题是可以在 cshtml 文件中更正渲染该 javascript 吗?
解决方案
您可以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 编码,我希望您完全信任脚本内容值:)。如果您不遵循前面的陈述,请阅读有关脚本注入攻击的信息。
推荐阅读
- javascript - 使用不带 break 和 continue 语句的 JavaScript 标签
- jquery - 如何在 Laravel 中使用 jQuery 获取记录的确切 ID 并将其传递给形成操作路线
- node.js - 我想通过导出将 API 的结果数据用于另一个 JS 变量
- c# - AssemblyInitialize 和 AssemblyCleanup 在每次测试之前和之后运行,而不是在整个套件之前和之后运行
- firebase - 如何将 Firebase 消息配置为不显示某些类型的推送通知
- php - Prestashop 1.7.6.5:按特征分类产品
- jenkins - Creating job with script from another job
- next.js - Nextjs displays white screen during development
- excel - excel中Split函数的等价物是什么?
- google-api - Command '['ninja', '-j12', '-l12']' returned non-zero exit status 1 on compile