MVC4 モバイル アプリケーションから表示するカスタム エラー ページを取得しようとしていますが、カスタム ページの代わりに「ページの読み込みエラー」という黄色のメッセージが表示され続けます。
アクションとコントローラーで以下のようにHandleErrorAttributeを使用しようとしましたが、成功しませんでした
[HandleError(ExceptionType = typeof(SqlException), View = "DatabaseError")]
ベースコントローラーの OnException メソッドをオーバーライドしようとしましたが、これも効果がないようです。
protected override void OnException(ExceptionContext filterContext)
{
if (filterContext == null)
base.OnException(filterContext);
Logger.LogException(filterContext.Exception);
if (filterContext.Exception is SqlException)
{
filterContext.Result = new ViewResult { ViewName = "DatabaseError" };
}
if (filterContext.Exception is SomeOtherException)
{
filterContext.Result = new ViewResult { ViewName = "Error" };
}
if (filterContext.HttpContext.IsCustomErrorEnabled)
{
filterContext.ExceptionHandled = true;
filterContext.Result.ExecuteResult(this.ControllerContext);
}
}
jQueryMobile MVC4 以外のアプリケーションでこれらのメソッドを試してみると、期待どおりに動作しますが、モバイル アプリケーションでは動作しません!
なぜ、どのようにこれを機能させるのかについて、誰にも洞察がありますか??