我是ASP.NET核心的新手。我想在PageModel中引发异常时向客户端显示警告消息。完成此任务的最佳方法是什么?
vddsk6oq1#
假设您有一个PageModel类,其中声明了一个如下所示的变量
public class CustomerEditModel() : PageModel { [TempData] public string StatusMessage {get;set;} ..... }
在该类中,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>
最后,添加一个使用JQuery和SweetAlert显示消息框的JavaScript块
@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>
mctunoxg2#
您可以使用引导程序警告消息。在共享〉布局.cshtml添加。
<div class="container"> <main role="main" class="pb-3"> @if (TempData[Constants.AlertSuccess] != null) { <div class="alert alert-success" role="alert"> @Html.Raw(@TempData[Constants.AlertSuccess]) </div> } @if (TempData[Constants.AlertDanger] != null) { <div class="alert alert-danger" role="alert"> @Html.Raw(@TempData[Constants.AlertDanger]) </div> } @if (TempData[Constants.AlertWarning] != null) { <div class="alert alert-warning" role="alert"> @Html.Raw(@TempData[Constants.AlertWarning]) </div> } @RenderBody() </main> </div>
在这个方向上,它将对每一页都有效。否则,将@if语句放在您选择的页面中。类常量
public static readonly string AlertSuccess = "AlertSuccess"; public static readonly string AlertDanger = "AlertDanger"; public static readonly string AlertWarning = "AlertWarning";
或者将它们的值直接写入TempData。例如在OnPost()中
TempData[Constants.AlertWarning] = "Hello World" TempData["AlertSuccess"] = "Success<br/>It is good." TempData["AlertDanger"] = "Danger<br/>It is bad."
向用户显示警告/错误/成功消息。
2条答案
按热度按时间vddsk6oq1#
假设您有一个PageModel类,其中声明了一个如下所示的变量
在该类中,Post方法发现自己处于某种类型的异常条件中
现在,在匹配的RazorPage中,您有一个链接到上面的StatusMessage属性的隐藏字段
最后,添加一个使用JQuery和SweetAlert显示消息框的JavaScript块
mctunoxg2#
您可以使用引导程序警告消息。在共享〉布局.cshtml添加。
在这个方向上,它将对每一页都有效。否则,将@if语句放在您选择的页面中。
类常量
或者将它们的值直接写入TempData。例如在OnPost()中
向用户显示警告/错误/成功消息。