2009-04-03 10 views
0

HandleErrorを使用して、今朝小さな小ブロックに行きました。ユーザーは/Views/Shared/Error.aspxに適切に誘導されます。このビューではマスターページも使用されますが、これも表示されます。 Page_LoadメソッドにViewData.Model.Exceptionの詳細も記録します。私の考えではコードビハインドの許容された使用。強く型付けされた部分図を含むHandleError

私の問題は次のとおりです。ページには、ユーザーの入力データの一部を含む厳密な型の部分ビューが含まれています。私は、例外が発生した後でもそのデータへのアクセスを保持したいと考えています。そのため、ユーザーは私たちの例外(エラーメッセージが表示され、フォーム値が失われている)に対して二重にペナルティを課されません。

HandleErrorや他の再利用可能な属性を使用してこれを実現する方法はありますか?

答えて

0

最も簡単な解決策は、バックボタンになり、そしてあなたが必要な場合、それは

:-)何のコードを必要としない見つけることができますコードベースのソリューションでは、ユーザーがError.aspxに上る前にフォームデータを保持する必要があると思います。その時点でリダイレクトが行われ、すべての要求データが失われます。その後、ユーザーが障害のあるビューにナビゲートすると、永続化された値からフォームが復元されます。

Error.aspxは一般的なエラーページであり、最後の手段です。このページは、一般的なエラー処理以外の作業をしようとすべきではありません。

0

この問題を回避する方法は、Ajax.BeginForm(){}を使用して、ユーザーコントロールをレンダリングして、ビューが最新表示されず、入力が失われないようにすることです。あなたのエラーメッセージが厳密に入力制限があるなら、あなたはまた、jquery.validate.jsファイルを使用することができ、ここでhttp://randomactsofcoding.blogspot.com/2008/09/starting-with-jquery-validation-plug-in.html

+0

これらは入力妥当性検査の例外ではなく、実際のアプリケーションの例外で、モデルや他の場所(SQLエラーなど)で処理されたものですが、エラーが発生したことをユーザに認識させるためです。 –

関連する問題