我是asp.Net MVC的新宠。我有一个场景,如果在应用程序内发生自定义异常,那么我需要重定向到登录页面。 catch块看起来像..
catch (Exception ex){
WriteLog(ex, TalxCategories.Business);
}
public virtual void WriteLog(Exception ex, Category category){
CsaWebLogger.Current.WriteError(ex, category);
}
我面临的问题就像 我需要从WriteLog方法重定向。因为方法是无效的我无法使用 返回重定向.. 我试过的另一种方法就像..
var context = new RequestContext(
new HttpContextWrapper(System.Web.HttpContext.Current),
new RouteData());
var urlHelper = new UrlHelper(context);
var url = urlHelper.Action("Index", new { OtherParm = "other value" });
System.Web.HttpContext.Current.Response.Redirect(url);
这个方法对我来说也没用。请帮我从WriteLog方法重定向到Login动作。
答案 0 :(得分:0)
将[HandleError]添加到您的控制器或filterconfig.cs中作为filters.Add(new HandleErrorAttribute())如果不存在
为异常处理创建自定义过滤器 请按照以下步骤
1.创建一个继承自FilterAttribute和IExceptionFilter接口的类 并调用WriteLog(),如图所示
public class CustomExceptionHandler : FilterAttribute ,IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
WriteLog(filterContext.Exception, TalxCategories.Business);
}
}
1.Decorate您的控制器[CustomExceptionHandler]或在FilterConfig中注册为filters.Add(new CustomExceptionHandler()); 而已。 你正在实现两件事。记录并重定向到自定义页面