Мне нужно глобально перенаправить моих пользователей, если пользовательская ошибка выбрасывается в моем приложении. Я попытался поместить некоторую логику в свой файл global.asax для поиска моей пользовательской ошибки, и если она выбрана, выполните перенаправление, но мое приложение никогда не ударяет мой метод global.asax. Он продолжает давать мне ошибку, в которой говорится, что мое исключение было необработанным кодом пользователя.Redirect asp.net mvc, если выбрано настраиваемое исключение
вот что я имею в своем глобальном.
protected void Application_Error(object sender, EventArgs e)
{
if (HttpContext.Current != null)
{
Exception ex = HttpContext.Current.Server.GetLastError();
if (ex is MyCustomException)
{
// do stuff
}
}
}
и мое исключение следующим образом:
if(false)
throw new MyCustomException("Test from here");
, когда я положил, что в попытке поймать из файла метания исключения, мой метод Application_Error никогда не будет достигнут. У кого-нибудь есть какие-то предложения относительно того, как я могу справиться с этим в глобальном масштабе (справиться с моим обычным исключением)?
спасибо.
1/15/2010 Редактировать: Вот что находится в // do stuff.
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 для бита Do Stuff – stuartdotnet