2

HandleError属性を使用してASP.NETMVC3で例外処理を実装しようとしています。

私が使用しているコードは次のようになります。

[HandleError(Order = 1, ExceptionType = typeof(SocketsOfflineException), View="EndSystemDownError")]

これは、EndSystemDownErrorビューが「共有」フォルダーにある場合に期待どおりに機能します。ただし、エラービューがいくつかあるので、それらを「エラー」と呼ばれるエラー専用のフォルダーに分けたいと思います。

そこで、EndSystemDownErrorビューを共有フォルダーから取り出し、Viewsフォルダーの「Error」サブフォルダーに入れます。次に、Viewプロパティをに更新します~/Views/Error/EndSystemDownError。ただし、これにより、ビューが見つからなかったことを示す例外が発生します。私も試し/Views/Error/EndSystemDownErrorましたが、同じ結果になりました。

トラブルシューティングの手段として、またビューにいくつかのコントローラー機能を追加したいので、アクションErrorController付きのを追加しようとしました。EndSystemDownErrorこれは効果がありません。

何が間違っているのか理解できないようです。おそらくこれはMVCのバグであるか、Sharedフォルダー外のエラービューをサポートしていない可能性があります。これは残念なことです。

4

4 に答える 4

0

試しましたか

[HandleError(Order = 1, ExceptionType = typeof(SocketsOfflineException), View="Error/EndSystemDownError")]
于 2011-02-21T22:23:03.817 に答える
0

Orchard モジュールのプログラミングに関する補足事項:

Orchard はそれ自体を処理するカスタム フィルターを実装するため、このHandleError属性は Orchard モジュールでは機能しません。

ビューでスローされた例外をキャッチするには、FilterProviderをオーバーライドする を実装する必要があります。OnResultExecuted()

を参照src\Orchard\Exceptions\Filters\UnhandledExceptionFilter.csしてください。一般的な Orchard エラー ページを実装しています。

于 2015-04-09T10:33:50.543 に答える