1

私の実際のシナリオ例は次のとおりです。

Create(TClass obj) という名前のアクションを持つコントローラーがあります。

エラーが発生した場合、特殊な例外 (MyException) を発生させたいのですが、別のページ (General Page Error Handler など) にリダイレクトしたくありません。同じページにとどまり、jQueryUI Dialog ポップアップにメッセージ エラーを表示したい。

私はこれらのオプションを試しました:

  • OnException メソッドをオーバーライドします (Controller 内)。
  • テスト済み PostSharp (OnExceptAspect に特化)
  • このリンクなどでソリューションをテストしました。

何か考えはありますか?

ありがとう。

4

1 に答える 1

1

アプリケーション全体で、すべてのコントローラー メソッドで次を呼び出します。

catch(Exception e)
{
    errorModel errorModelInstance = new errorModel();
    errorModel.message = e.Message;
    errorModel.stack = e.StackTrace;  //You get the idea...
    return PartialView("someErrorView", errorModelinstance);
}

次に、モーダル ポップアップの jQueryUI のスクリプト参照を含む someErrorView.cshtml ファイルを用意し (マスター レイアウトが既にアプリケーション全体で参照している場合を除く)、その部分ビューにモーダル ポップアップの初期化子を用意します。(ポップアップを初期化するためのフロントエンド コードが必要な場合はお知らせください)。

この部分ビューは、モデル「errorModel」を返します。エラーモデルの文字列プロパティを宣言するには、models フォルダーの下にクラスを定義する必要があります。

于 2012-09-05T22:44:32.183 に答える