Ich bin Anfänger Fehlerbehandlung in global.asax in asp.net mvc5.In Application_Error kann ich alle URL erreichen, aber gibt es eine Möglichkeit, Post-Parameter zu sehen der Methode in global.asax, um der Bedeutung den Fehler zu geben. Im Detail habe ich Application_Error() wie folgt.So erreichen Sie Parameter der Methode in der globalen Fehlerbehandlung in asp.net mvc5
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();
}
}
}
Was passiert, wenn Sie nehmen einen Fehler in der Methode wie unten
public JsonResult(ExampleModel example){
return Json("");}
Gibt es eine Möglichkeit, die Eigenschaften der Klasse Beispielmodell in Application_Error() zu erreichen?
Danke für die Antwort seiner immer spezifische Eigenschaft von Modellklasse – mayk
@mayk, yup. Um das gesamte Objekt zu erhalten, müssen Sie die Modellbindung möglicherweise manuell durchführen. In einem normalen Ablauf von Dingen ist dies, was ASP.NET MVC-Pipeline für Sie tut, während Aufruf Aktionsmethode. – Andrei
Ja, Thans wieder. Sie haben Recht, spezifische Eigenschaftsprüfung ist für alle besser. – mayk