C# .Net核心IFilter继承的接口不会';不要执行任何方法

C# .Net核心IFilter继承的接口不会';不要执行任何方法,c#,asp.net-core,asp.net-core-mvc,ifilter,C#,Asp.net Core,Asp.net Core Mvc,Ifilter,我有一个类继承自actionfilteratAttribute和IActionFilter。现在我正在实现接口方法,并将过滤器应用于控制器和操作。什么都没发生 我通过在整个过滤器上应用一些断点来确保它。为了澄清这一点,我使用的是System.Web.Mvc.Filters,这就是其中的大部分,我只想在执行操作之前使用一个过滤器 public class AuthJwtFilter : ActionFilterAttribute, IActionFilter { public string

我有一个类继承自
actionfilteratAttribute
IActionFilter
。现在我正在实现接口方法,并将过滤器应用于控制器和操作。什么都没发生

我通过在整个过滤器上应用一些断点来确保它。为了澄清这一点,我使用的是
System.Web.Mvc.Filters
,这就是其中的大部分,我只想在执行操作之前使用一个过滤器

public class AuthJwtFilter : ActionFilterAttribute, IActionFilter
{
    public string Realm { get; set; }

    void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
    {
        var request = true;
    }
}
只需在
var请求上设置一个断点,查看它是否进入

[AuthJwtFilter]
    [HttpGet("/test")]
    public IActionResult Test()
    {
        return Ok("Hello");
    }

这就是控制器操作

从类声明中删除
IActionFilter
接口
ActionFilterAttribute
已经实现了该接口

重写基本方法:

public override void OnActionExecuted(ActionExecutedContext filterContext)
{
    var request = true;
}
这应该行得通


更新:顺便说一句,如果你想在操作执行之前启动过滤器,你应该重写
操作执行

是的,我们需要代码。顺便说一句,我尝试添加了一些其他现成的过滤器,但没有启动。也许我错了,但是[HttpGet]很好,但是[Authorize]已经死了。@SlavKirilov:我明白了。您使用的是哪个版本的MVC?@SlavKirilov:顺便说一下,正确的名称空间应该是System.Web.MVC.my
Microsoft.AspNet.MVC
is 5.2.3。我不知道在哪里检查我的
System.Web.Mvc
版本,但在我的“使用”部分,我声明了
System.Web.Mvc.Filters
我想我知道发生了什么。这不是正确的名称空间。在using语句中必须有
System.Web.Http.Filters
。删除
System.Web.Http.Filters
并添加
System.Web.Mvc