0

aspx ページに含まれる Web ユーザー コントロールがあります。テスト中に、スローされる例外を発見しました。(一般的な規則として、例外が発生すると、ユーザーはエラーの詳細を示す例外ページにリダイレクトされます)

ユーザーコントロールで例外が処理されたら、解析とリダイレクトが安全に行われるページに例外をスローしたいと思いました。他の状況では、Global Asax、Application_Error を使用してリダイレクトなどを処理することでこれを行います。ただし、ユーザー コントロールから例外をスローしたときに発生したのは、例外メッセージを含む恐ろしい JavaScript タイプのダイアログが表示されたことだけでした。

これを回避するために、パラメーターとして例外を使用してユーザー コントロールから発生する Event を宣言しました。例外を必要な形式に正常に解析し、ユーザーを例外ページにリダイレクトできます。

私の質問はこれらです

  1. ユーザー コントロールから例外をスローすると、JavaScript ダイアログのみが表示され、Global.asax エラー処理が開始されないのはなぜですか。

  2. コントロールのコンシューマにカスタム エラー イベントを処理させる方法はありますか? 「MustImplement」に似ている-----「MustHandle」のような事件ですか?

4

2 に答える 2

1
  1. ユーザー コントロールから例外をスローすると、JavaScript ダイアログのみが表示され、Global.asax エラー処理が開始されないのはなぜですか。

非同期ポストバック中にページ エラーが発生するため、ASP.Net Ajax アプリケーションでのエラー処理に関する優れた記事があります。

2. コントロールのコンシューマにカスタム エラー イベントを強制的に処理させる方法はありますか? 「MustImplement」に似ている-----「MustHandle」のような事件ですか?

これは、Global.asax で非同期ポストバック エラーを処理する方法を説明しています。

于 2009-02-05T15:24:00.990 に答える
0

私は ASP.NET に精通していませんが、試してみます。

  1. ユーザー コントロールから例外をスローすると、JavaScript ダイアログのみが表示され、Global.asax エラー処理が開始されないのはなぜですか。

エラーはクライアント側で発生し、エラー処理はサーバー側で行われます。エラー時に起動する AJAX-y コールバックを実装しない限り、サーバーにはクライアント側のエラーが通知されません。これは、ASP.NET の既定の動作ではないようです。Microsoft の AJAX ライブラリを調べてみるかもしれませんが、確かにそのようなことを行うためのメカニズムが既に用意されています。

  1. コントロールのコンシューマにカスタム エラー イベントを処理させる方法はありますか? 「MustImplement」に似ている-----「MustHandle」のような事件ですか?

簡単な答え: いいえ。

于 2009-02-04T15:09:55.623 に答える