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

ASP.NET Core中使用Sweet Alert点击默认Ok按钮跳转URL失败如何解决

问题原因及解决思路

  • SweetAlert2 回调方法使用错误
    你当前用的是旧版SweetAlert的回调传参写法,SweetAlert2的Swal.fire()返回的是Promise对象,不支持直接在第二个参数传入回调函数,这是跳转不触发的最高概率原因。
  • Razor语法未解析
    代码里的@Url.Action("Action","Controller")是ASP.NET的服务端Razor语法,如果这段JS代码写在独立的.js文件而非.cshtml视图文件中,服务端不会解析该语法,最终url会变成字面量字符串@Url.Action("Action","Controller"),导致跳转路径错误。如果需要在独立JS中使用该路径,可以提前在视图文件中将路径挂载到全局变量,比如window.targetUrl = '@Url.Action("Action","Controller")',再在JS中直接取用window.targetUrl即可。
  • 自动关闭场景未覆盖
    你配置了timer:5000参数,弹窗会在5秒后自动关闭,默认配置下自动关闭不会触发确认按钮的回调逻辑,需要额外处理自动关闭后的跳转逻辑。
  • 配置项拼写错误
    你写的BorderColor配置项首字母大写不符合SweetAlert2的规范,正确的参数名是小写开头的borderColor,虽然这个错误不会直接导致跳转失败,但可能引发弹窗渲染异常间接影响逻辑执行。

修正后代码示例

if(msg) {
  if (msg.provider == "sweetAlert") {
    swal.fire({
        title: msg.title,
        text: msg.text,
        icon: msg.icon,
        timer: 5000,
        confirmButtonColor: "black",
        borderColor: "white"
    }).then((result) => {
        // 同时覆盖用户点击确认、弹窗自动关闭两种触发场景
        if (result.isConfirmed || result.dismiss === Swal.DismissReason.timer) {
            var url = '@Url.Action("Action","Controller")';
            window.location.href = url;
        }
    });
  } 
}

内容的提问来源于stack exchange,提问作者dark.vador

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:09:01