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

如何在MVC Razor视图中通过JavaScript调用模型生成二维码

解决Razor视图中拼接Model值生成二维码的问题

首先,你之前的尝试都存在语法错误,导致JS代码无法正确执行,所以二维码无法显示。先逐个指出问题,再给出正确实现:

错误分析

  • 选项1:var guid = "..."+@Html.Raw(Model.CurrentSessionId)) 多了一个闭合括号;new QRCode(..., (guid); 多了一个左括号,属于语法错误
  • 选项2:拼接字符串时,@Html.Raw(Model.CurrentSessionId) 没有被引号包裹,JS会把它当成变量而非字符串;同时缺少闭合引号和函数括号
  • 选项3:var guid = @Html.Raw(Model.CurrentSessionId) 没有引号,JS解析时会报错;模板字符串末尾缺少闭合的反引号和QRCode构造函数的闭合括号

正确实现方案

方案1:直接拼接带引号的Model值

<script src="~/js/qrcode.js"></script>
<script type="text/javascript">
    // 给Model值加上引号,确保JS识别为字符串类型
    var fullUrl = "https://mywebpage.net/GameSession/GameStartPlayer/" + "@Html.Raw(Model.CurrentSessionId)";
    new QRCode(document.getElementById("qrcode"), fullUrl);
</script>

方案2:在Razor中直接拼接完整URL

<script src="~/js/qrcode.js"></script>
<script type="text/javascript">
    // 直接通过Razor拼接好完整URL,再传递给JS
    var fullUrl = "@Html.Raw($"https://mywebpage.net/GameSession/GameStartPlayer/{Model.CurrentSessionId}")";
    new QRCode(document.getElementById("qrcode"), fullUrl);
</script>

方案3:使用ES6模板字符串

<script src="~/js/qrcode.js"></script>
<script type="text/javascript">
    // 给Model值添加引号,模板字符串要闭合反引号
    var guid = "@Html.Raw(Model.CurrentSessionId)";
    new QRCode(document.getElementById("qrcode"), `https://mywebpage.net/GameSession/GameStartPlayer/${guid}`);
</script>

无断点时的验证方法

因为无法在Razor视图断点调试,你可以通过查看页面HTML源码(浏览器按F12打开开发者工具 -> 切换到「元素」面板)检查生成的JS代码:

  • 确认拼接后的URL是完整的字符串格式,例如:"https://mywebpage.net/GameSession/GameStartPlayer/xxxx-xxxx-xxxx"
  • 检查是否存在未闭合的引号、括号等语法问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:15:30