我目前正在尝试通过装饰自Handle Error Attribute
继承的动作名称上没有运气的自定义类,将Action
应用于我的Child Action
和HandleErrorAttribute
。
更具体地说,它在Action
上工作正常,但在Child Action
上不是。我正在尝试调试并看到处理错误的方法以递归方式获取调用,直到调用堆栈溢出为止。我不知道该如何处理,希望您能在这个问题上给我更多的见解。
这是我的自定义错误处理程序:
public class MyCustomErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
var controllerName = filterContext.RouteData.Values["controller"] as string;
var actionName = filterContext.RouteData.Values["action"] as string;
filterContext.ExceptionHandled = true;
var model = new mymodel();
filterContext.Result = new ViewResult()
{
ViewName = "Error",
ViewData = new ViewDataDictionary(model)
};
}
}
这是我的孩子的动作:
[ChildActionOnly]
[OutputCache(Duration = 60, VaryByCustom = "host")]
[MyCustomError]
public ActionResult Catalogues(bool catalogue = true)
{
throw new Exception("test 2");
}
这是我的动作:
[MyCustomError]
public async Task<ActionResult> Index(int page = 1)
{
throw new Exception("test");
}
我也推荐了this,但它不能作为公认的答案。
任何帮助将不胜感激!
谢谢。