ASP.NET Core项目如何在SweetAlert中显示ViewBag的值
完全可以在SweetAlert弹窗中展示ViewBag的值,按对应场景调整写法即可正常运行:
- 首先确认代码位置:你的SweetAlert代码必须写在
.cshtml后缀的Razor视图文件中,Razor引擎才会解析@ViewBag语法并渲染对应值。如果代码写在独立的.js静态文件中,Razor不会处理@符号,自然无法拿到值。 - 处理特殊字符避免语法报错:如果
ViewBag.OrderNo包含引号、换行等特殊字符,直接套双引号会导致JS语法异常,推荐直接用Razor提供的序列化方法处理,不需要手动加引号,示例如下:
Swal.fire({ title: "添加成功!", // Json.Serialize会自动处理转义并添加字符串引号,避免语法错误 text: @Json.Serialize(ViewBag.OrderNo), type: "success", confirmButtonClass: 'btn btn-primary', buttonsStyling: false })
- 如果你的JS代码必须放在独立静态文件中,可以先在视图层把值挂载到全局变量,再在JS文件中调用:
- 在.cshtml视图中添加全局变量声明:
<script> // 提前把ViewBag的值存入全局变量 window.appData = { orderNo: @Json.Serialize(ViewBag.OrderNo) } </script>
- 在独立JS文件中直接调用即可:
Swal.fire({ title: "添加成功!", text: window.appData.orderNo, icon: "success", // 如果你使用的是SweetAlert2新版,type参数已废弃,改用icon参数即可 confirmButtonClass: 'btn btn-primary', buttonsStyling: false })
内容的提问来源于stack exchange,提问作者Chaam
相关产品推荐
相关产品推荐

