具有强类型部分视图的HandleError

时间:2009-04-03 15:06:09

标签: c# asp.net-mvc

今天早上我遇到HandleError遇到了一个小障碍。用户被正确定向到/Views/Shared/Error.aspx。此视图使用主页面也显示正常。它还在其Page_Load方法中记录ViewData.Model.Exception的细节。我认为可以接受使用代码隐藏。

我的问题是:该页面包含一个强类型的部分视图,其中包含一些用户的输入数据。我希望即使在异常发生后也能保留对该数据的访问权限 - 因此用户不会因我们的异常而受到双重处罚(显示错误消息并丢失其表单值)。

有没有办法使用HandleError或其他可重用属性来完成此操作?

2 个答案:

答案 0 :(得分:0)

我解决这个问题的方法是使用Ajax.BeginForm(){}并渲染用户控件,这样您的视图就不会刷新,输入也不会丢失。如果您的错误消息是严格的输入限制,那么您也可以使用jquery.validate.js文件http://randomactsofcoding.blogspot.com/2008/09/starting-with-jquery-validation-plug-in.html

答案 1 :(得分:0)

最简单的解决方案是后退按钮,它不需要代码: - )

如果您需要基于代码的解决方案,我认为您必须在用户登陆Error.aspx之前保留表单数据。此时发生了重定向,所有请求数据都将丢失。然后,当用户导航到故障视图时,您可以从持久值中恢复表单。

Error.aspx是一般错误页面,也是您的最后一招。除了一般错误处理之外,该页面甚至不应该尝试执行任何任务。