You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CSHTML文件中正确渲染数据库存储的JavaScript代码或链接?

当然可以在CSHTML中正确渲染这两类JavaScript内容!

不过得先避开Razor视图的一个默认特性——自动HTML编码,直接输出字符串的话,Razor会把<、>这些符号转义成&lt;、&gt;,导致脚本变成纯文本无法执行。下面给你两种简单可靠的实现方式:

方法一:使用Html.Raw()(最常用)

Razor提供了Html.Raw()方法,专门用来输出不需要编码的原始HTML内容。假设你的Model里存储脚本的字段叫ScriptContent,直接在CSHTML里这么写:

@Html.Raw(Model.ScriptContent)

不管数据库里存的是带src的外部脚本链接,还是内嵌的JS代码,这个方法都会原样输出,浏览器能正确解析执行。

如果是循环输出多条脚本,写法也类似:

@foreach (var scriptItem in Model.ScriptCollection)
{
    @Html.Raw(scriptItem.ScriptContent)
}

方法二:使用HtmlString(ASP.NET Core也适用)

你也可以把字符串包装成HtmlString类型,Razor会识别它为无需编码的内容:

@(new HtmlString(Model.ScriptContent))

效果和Html.Raw()完全一致,只是写法不同而已。

关键注意事项:安全风险!

一定要确保数据库中的脚本内容是完全可信的:

  • 如果这些脚本是你自己或团队维护的,没问题;
  • 如果是用户提交的内容,必须做严格的XSS过滤(比如过滤危险的eval()、document.write()等操作,或者只允许特定域名的外部脚本),否则恶意脚本会直接在用户浏览器执行,造成安全漏洞。

内容的提问来源于stack exchange,提问作者Lim Popo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:37:28