ASP.NET MVC控制器报错时通过BootstrapDialog弹窗展示错误信息
控制器错误信息通过BootstrapDialog弹窗展示的实现方案
背景
接手一个需维护扩展的旧ASP.NET MVC 5项目,原项目仅在前端JS捕获错误时使用BootstrapDialog弹窗展示,未实现后端控制器报错的弹窗提示。当前需对接支付服务商的托管支付页(HPP),HPP处理完成后会将结果POST到控制器的webhook方法,当支付被拒时,需要将拒付原因以弹窗形式展示给客户,且不能使用页面固定区域展示(避免信息残留至页面刷新),需统一复用现有BootstrapDialog弹窗逻辑。
实现思路
- 后端控制器通过
ViewBag将错误信息传递至视图 - 视图中通过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
相关产品推荐
相关产品推荐

