2

我正在尝试处理我的 c# MVC 应用程序中的所有异常。所有的控制器都继承自 BaseController,所以我想我可以重写 OnException ( protected override void OnException(ExceptionContext filterContext))。但是我不想重定向到错误页面,我想做的是返回到发起请求的页面并保持其状态。因此,如果我有一个由用户填写的表单,在处理异常后,我想用用户填写的信息显示该表单及其输入。

注意:并非所有视图都是强类型的。

例子:

USER: myuser <-- 在输入标签中输入的文本

处理异常后,我想返回上一个显示异常消息的视图。

USER: myuser <-- 在输入标签中输入的文本 我的异常消息

4

1 回答 1

2

验证不应被视为未处理的异常!请阅读Model Validation in ASP.NET MVC以处理这种情况。

顾名思义,未处理的异常是仅在异常情况下发生的事情。例外情况是当它发生时您的应用程序无法处理请求。因此重定向到已知状态没有意义,因为发生未处理的异常时没有状态。在这种情况下,您可以做的最好的事情是记录异常以进行进一步分析,并将用户重定向到 500 错误页面,通知他出了问题。

结论:

  • 使用模型验证处理验证逻辑
  • 对未处理的异常使用 OnException。
于 2012-12-06T12:51:08.653 回答