asp.net 核心中的甜蜜警报确认对话框

Sweet alert confirmation dialog in asp.net core

我是 asp.net 核心中使用 sweet alert 的新手。在这里,当我想提交一个在添加记录后将数据存储在数据库中的表单时,我想显示一个带有甜蜜警报的确认警报。这是我的控制器代码:

 public async Task<IActionResult> RequestJob()
    {
        ViewBag.Result = false;
        return View();
    }
    [HttpPost]
    public async Task<IActionResult> RequestJob(ResumeViewModel viewModel)
    {
        if (ModelState.IsValid)
        {
                Resume resume = new Resume()
                {
                    Name = viewModel.Name,
                    LastName = viewModel.LastName,
                    Age = viewModel.Age,
                    Mobile = viewModel.Mobile,
                    Mail = viewModel.Mail,
                   
                };
                await _temp.AddResume(resume);
                ViewBag.Result = true;
                ModelState.Clear();
            }
        }

        ViewBag.Result = false;
        return View(viewModel);
    }

这是我在 ViewBag 条件中查看 Sweet alert 的代码:

@if (ViewBag.Result)
    {
      @section mySection{
             <script>
              $("#submition").on('click', (function () {
                swal({
                title: "Message",
                text: "Your message has been sent successfully",
                type: 'success',
                showCancelButton: false,
                allowOutsideClick: false,
                confirmButtonColor: "green",
                confirmButtonText: "Ok"
            }).then(func1tion () {
                window.location.reload(true);
            });

        }));

    </script>
  }}

但是当我提交表单时,尽管表单正确提交了信息,但甜蜜警报不起作用。请优化我的代码以便甜蜜警报起作用,我不知道为什么甜蜜警报在我的 ViewBag 条件下不起作用?!

你的代码有两个问题。

第一个是@kordiseps 提到的。当 ModelState.IsVaild 为 true 时,您没有 return View,因此 ViewBag 值始终为 false,并且永远不会呈现该部分。

第二个问题:sweet alert 的工作取决于ViewBag 条件,所以这里你不应该在表单提交事件中这样做。相反,您需要在页面加载功能中执行此操作。

像下面这样更改您的代码:

控制器:

[HttpPost]
public async Task<IActionResult> RequestJob(ResumeViewModel viewModel)
{
    if (ModelState.IsValid)
    {
        Resume resume = new Resume()
        {
            Name = viewModel.Name,
            LastName = viewModel.LastName,
            Age = viewModel.Age,
            Mobile = viewModel.Mobile,
            Mail = viewModel.Mail,

        };
        await _temp.AddResume(resume);
        ViewBag.Result = true;
        ModelState.Clear();
        return View(viewModel);
    }

    ViewBag.Result = false;
    return View(viewModel);
}

查看:

@if (ViewBag.Result)
{
    @section mySection{
        <script>
            $(function () {
                swal({
                    title: "Message",
                    text: "Your message has been sent successfully",
                    type: 'success',
                    showCancelButton: false,
                    allowOutsideClick: false,
                    confirmButtonColor: "green",
                    confirmButtonText: "Ok"
                }).then(function () {
                });
            })
        </script>
    }
}