如何在 PageModel 的 ASP.NET Core Razor 中显示警报消息

How to show alert message in ASP.NET Core Razor from PageModel

我是 ASP.NET Core 的新手。当 PageModel 中出现异常时,我想向客户端显示一条警告消息。完成此任务的最佳方法是什么?

假设您有一个 PageModel class,您在其中声明了一个像这样的变量

public class CustomerEditModel() : PageModel
{
    [TempData]
    public string StatusMessage {get;set;}
    .....
}

在此 class 中,Post 方法发现自己​​处于某种类型的异常条件中

public async Task<IActionResult> OnPostAsync()
{
     ....
     catch(Exception ex)
     {
        _logger.LogError(ex, "Exception in post");
        StatusMessage = "An error occurred while saving customer data!";
        return Page();
     }
}

现在在匹配的 RazorPage 中,您有一个隐藏字段链接到上面的 StatusMessage 属性

<div class="d-none">
   <input asp-for="StatusMessage"/>
</div>

最后你添加了一个 javascript 块,它使用 JQuery 和 SweetAlert 来显示你的消息框

@section Scripts {
<script> src="https://cdn.jsdelivr.net/npm/sweetalert2@11.1.7/dist/sweetalert2.all.min.js"></script>

<script>
   $(document).ready(function () {
      let msg = $('#StatusMessage').val();
      if(msg.length > 0) {
          swal.fire(msg);
      }
   }
</script>