如何在 asp.net mvc5 中获取全局错误处理方法的参数

How to reach parameters of method in global error handling in asp.net mvc5

我是 global.asax 在 asp.net mvc5.In Application_Error 中的错误处理新手 Application_Error 我可以达到所有 url 但是有什么办法可以看到 Post 方法中的参数 global.asax 给出错误的含义。 详细我有 Application_Error() 如下。

protected void Application_Error()
    {
        HttpContext httpContext = HttpContext.Current;

        int userid = Convert.ToInt32(httpContext.User.Identity.Name.Split('_')[1]);
        if (httpContext != null)
        {
            RequestContext requestContext = ((MvcHandler)httpContext.CurrentHandler).RequestContext;

            if (requestContext.HttpContext.Request.IsAjaxRequest())
            {


                httpContext.Response.Clear();
                string controllerName = requestContext.RouteData.GetRequiredString("controller");
                IControllerFactory factory = ControllerBuilder.Current.GetControllerFactory();
                IController controller = factory.CreateController(requestContext, controllerName);
                ControllerContext controllerContext = new ControllerContext(requestContext, (ControllerBase)controller);
                JsonResult jsonResult = new JsonResult();
                jsonResult.Data = new { Success = false, Message = "Error" };
                jsonResult.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
                jsonResult.ExecuteResult(controllerContext);
                httpContext.Response.End();
            }

        }
    }

如果你在下面的方法中出错怎么办

  public JsonResult(ExampleModel example){
    return Json("");}

有什么方法可以在 Application_Error() 中获取 ExampleModel class 的属性吗?

我不确定是否有开箱即用的方法来获取 global.asax 中的整个 ExampleModel 对象,但可以肯定的是,您可以访问该对象所包含的各个请求参数。假设模型有 属性 ExampleProperty 随请求发布,这应该给你它的值:

requestContext.HttpContext.Current.Request["ExampleProperty"]