0

次のようにメソッドをCustomHandleErrorAttributeオーバーライドする場所があります。OnException

    public override void OnException(ExceptionContext filterContext) {
        if (!filterContext.ExceptionHandled) {
            if (filterContext.HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest") {
                filterContext.Result = new JsonResult {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new {
                        error = true,
                        message = filterContext.Exception.Message
                    }
                };
            }
            else {
                var controllerName = (string)filterContext.RouteData.Values["controller"];
                var actionName = (string)filterContext.RouteData.Values["action"];
                var model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);

                filterContext.Result = new ViewResult {
                    ViewName = View,
                    MasterName = Master,
                    ViewData = new ViewDataDictionary<HandleErrorInfo>(model),
                    TempData = filterContext.Controller.TempData
                };
            }
        }
    }

AJAX リクエストによって、およびAction処理中に例外を取得できます。

例外がスローされたとき(たとえば、ページ上/Customers/Customer/1)に問題がありますが、ビューを表示yellow screenして、処理された例外に関する情報Server Error in '/' Applicationに渡し、このページに表示したいと思います(または他の場所にリダイレクトしないでください) )。ViewDataCustomErrorPage

1.例外がある場合は、フォームなしで例外情報を表示するだけです。2. 例外表示フォームがない場合。

それは可能ですか、またはスローされた例外がアクションの処理を続行できず、同じビューを表示できませんでしたか?

どうも。

4

1 に答える 1