クラス レベルで HandleError 属性を持つ C# MVC 3 コントローラーがあります。
[HandleError(View = "MyErrorPage")]
public class MyController : Controller
{
メソッドレベルで私が持っている:
[HttpPost]
[MyExceptionHandler]
public ActionResult DoSomeStuff(FormCollection fc)
{
MyExceptionHandler は次のようになります。
public class MyExceptionHandlerAttribute : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
//do Stuff
JsonResult result = new JsonResult {
Data = new {
error = "Your request blah blah...."
}
};
filterContext.Result = result;
filterContext.ExceptionHandled = true;
}
}
これは、私のローカルホストでは問題なく動作します。つまり、メソッド 'DoSomeStuff' [MyExceptionHandler] で例外が呼び出された場合、クラス レベル [HandleError] は呼び出されません。ただし、開発環境では、クラス レベルの [HandleError] が機能します。その結果、HandleError view=MyErrorPage がレンダリングされます。
- [HandleError] が localhost で冗長であることは承知していますが、修正 (または構成オプション) は可能ですか?
- 開発環境 (localhost ではない) で MyExceptionHandler がまったく呼び出されているかどうかはわかりません。クラスレベルの前に呼び出される可能性があります [HandleError]?
私の問題は、[MyExceptionHandler] を呼び出す唯一のハンドラーにする必要があることです。ローカルホストで [HandleError] を呼び出せるようにして、ローカルで問題をシミュレートできるようにしたいと考えています。