如何在 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"]
我是 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"]