【问题标题】:Stop continuation of ASP.NET MVC ActionFilter停止继续 ASP.NET MVC ActionFilter
【发布时间】:2023-03-27 15:50:02
【问题描述】:

我在一个动作上有两个自定义 ActionFilter。

在第一个动作过滤器中,如果不满足条件(经典授权),我会执行重定向。在另一个情况下,如果不满足另一个条件(比如角色检查),我会执行重定向。

但是如果第一个不满足,我不想继续第二个 actionFilter。如何做到这一点?

【问题讨论】:

  • 这个answer 对类似问题进行了更详细的介绍。

标签: asp.net asp.net-mvc action-filter actionfilterattribute


【解决方案1】:

filterContext.Result 属性设置为任何非空值将停止执行以后的过滤器。因此,如果您的第一个过滤器设置为filterContext.Result = new RedirectResult(...),则永远不会运行第二个过滤器和操作方法。这就是内置的[Authorization] 过滤器的工作原理。

【讨论】:

  • 我只需要回到一个 MVC2 项目,所以把它留在这里以防有人仍然需要它:如果你想在你的操作中使用 return null 的正常功能,你可以做 filterContext.Result = new EmptyResult();
猜你喜欢
  • 2018-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
相关资源
最近更新 更多