处理异常.NET MVC保持表单数据

时间:2012-12-06 12:44:49

标签: c# .net asp.net-mvc exception

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

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

示例:

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

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

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

1 个答案:

答案 0 :(得分:2)

验证不应被视为未处理的例外!请阅读Model Validation in ASP.NET MVC以了解此情况。

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

结论:

  • 使用模型验证来处理验证逻辑
  • 对未处理的异常使用OnException。