1
我正在使用ASP.NET Core。我的一个控制器调用引发各种异常的服务。我想在一个异常过滤器(不是中间件)中处理它们。从异常过滤器重定向
public class MyHandlerAttribute : ExceptionFilterAttribute
{
public override void OnException(ExceptionContext c)
{
if (c.Exception is FooException) {
// redirect with arguments to here
}
else if (c.Exception is FooException) {
// redirect with arguments to there
}
else {
// redirect to main error action without arguments, as 500
}
base.OnException(c);
}
}
与行动过滤器,一个异常过滤器不给我访问Controller
,所以我不能做一个c.Result = controller.RedirectTo...()
。
那么,如何重定向到我的错误操作?
第二个不起作用。第一个工作,如果你也设置'context.Exception = null;'但是这种类型的重定向不允许我指定参数 - 这是可能的吗? – grokky
第二个选项也适用。但是你也应该设置'context.ExceptionHandled = true;'。 – juunas
@juunas如果我这样做,那么它只是呈现一个空白页...奇怪! – grokky