今天早上我和HandleError遇到了一个小路障。用户被正确地定向到/Views/Shared/Error.aspx。这个视图使用了一个母版页,它也可以很好地显示。它还在其Page_Load方法中记录ViewData.Model.Exception的详细信息。在我看来,这是一种可以接受的代码隐藏的用法。
我的问题是:页面包含一个强类型的局部视图,该视图包含一些用户的输入数据。我想保留对这些数据的访问,即使在异常发生后-这样用户就不会因为我们的异常而受到双重惩罚(出现错误消息并丢失其表单值)。
有没有一种方法可以使用HandleError或其他可重用属性来实现这一点?
发布于 2009-07-26 02:43:05
最简单的解决方案是后退按钮,它不需要代码:-)
如果您需要基于代码的解决方案,我认为您必须在用户使用Error.aspx之前持久化表单数据。此时,重定向已经发生,所有请求数据都将丢失。然后,当用户导航到有问题的视图时,您可以从持久化值恢复表单。
Error.aspx是一个通用的错误页面,也是你最后的选择。此页甚至不应尝试执行常规错误处理以外的任何任务。
发布于 2009-04-03 16:59:59
我解决这个问题的方法是使用Ajax.BeginForm(){}并以不刷新视图和不丢失输入的方式呈现用户控件。如果你的错误信息是严格的输入限制,那么你也可以在http://randomactsofcoding.blogspot.com/2008/09/starting-with-jquery-validation-plug-in.html这里找到jquery.validate.js文件
https://stackoverflow.com/questions/714342
复制相似问题