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

ASP.NET MVC控制器报错时通过BootstrapDialog弹窗展示错误信息

控制器错误信息通过BootstrapDialog弹窗展示的实现方案

背景

接手一个需维护扩展的旧ASP.NET MVC 5项目,原项目仅在前端JS捕获错误时使用BootstrapDialog弹窗展示,未实现后端控制器报错的弹窗提示。当前需对接支付服务商的托管支付页(HPP),HPP处理完成后会将结果POST到控制器的webhook方法,当支付被拒时,需要将拒付原因以弹窗形式展示给客户,且不能使用页面固定区域展示(避免信息残留至页面刷新),需统一复用现有BootstrapDialog弹窗逻辑。

实现思路

  1. 后端控制器通过ViewBag将错误信息传递至视图
  2. 视图中通过JS读取ViewBag中的错误内容,在页面加载完成后判断是否存在错误信息,若存在则调用现成的displayErrorMessage函数触发弹窗

代码实现

控制器代码(C#)

if(!string.IsNullOrEmpty(errorMessageToDisplay))
{
   ViewBag.ErrorMessageToDisplay = errorMessageToDisplay;
}
return View();

视图脚本(JavaScript)

<script type="text/javascript">
$(function () {
   var errorMessageToDisplay = '@(ViewBag.ErrorMessageToDisplay)';
   $(window).on('load', function () {
      if (errorMessageToDisplay) {
         displayErrorMessage(errorMessageToDisplay);
      }
   });
});
function displayErrorMessage(errorMessageToDisplay) {
   BootstrapDialog.show({
      title: 'Error',
      type: BootstrapDialog.TYPE_DANGER,
      message: errorMessageToDisplay,
      buttons: [
         {
            label: 'OK',
            action: function (dialogItself) {
               dialogItself.close();
            }
         }
      ]
   });
   return false;
 };
</script>

内容的提问来源于stack exchange,提问作者Eddie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:30:47