Ich muss meine Benutzer global umleiten, wenn ein benutzerdefinierter Fehler in meiner Anwendung ausgelöst wird. Ich habe versucht, etwas Logik in meine global.asax-Datei zu setzen, um nach meinem benutzerdefinierten Fehler zu suchen, und wenn er ausgelöst wird, führe eine Weiterleitung durch, aber meine Anwendung trifft nie meine global.asax-Methode. Es gibt mir einen Fehler, der besagt, dass meine Ausnahme vom Benutzercode nicht behandelt wurde.Redirect asp.net mvc, wenn benutzerdefinierte Ausnahme ausgelöst wird
hier ist, was ich in meinem globalen haben.
protected void Application_Error(object sender, EventArgs e)
{
if (HttpContext.Current != null)
{
Exception ex = HttpContext.Current.Server.GetLastError();
if (ex is MyCustomException)
{
// do stuff
}
}
}
und meine Ausnahme ausgelöst wird, wie folgt:
if(false)
throw new MyCustomException("Test from here");
, wenn ich das aus der Datei in einen Try-Catch stellen die Ausnahme zu werfen, meine Application_Error Methode nie erreicht wird. Jeder hat ein paar Vorschläge, wie ich das global handhaben kann (mit meiner benutzerdefinierten Ausnahme umgehen)?
danke.
1/15/2010 bearbeiten: Hier ist, was ist in // Dinge tun.
RequestContext rc = new RequestContext(filterContext.HttpContext, filterContext.RouteData);
string url = RouteTable.Routes.GetVirtualPath(rc, new RouteValueDictionary(new { Controller = "Home", action = "Index" })).VirtualPath;
filterContext.HttpContext.Response.Redirect(url, true);
+1 für die Do Stuff Bit – stuartdotnet