在ASP.NET Core中,Action Filter可以用于在执行控制器中的操作之前或之后执行一些逻辑。如果Action Filter没有被调用,可能有以下几个解决方法:
[TypeFilter(typeof(MyActionFilter))]
public IActionResult MyAction()
{
// ...
}
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers()
.AddMvcOptions(options =>
{
options.Filters.Add(typeof(MyActionFilter));
});
}
[TypeFilter(typeof(MyActionFilter), Order = 1)]
public IActionResult MyAction()
{
// ...
}
public class MyActionFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// 如果返回了一个不是null的ActionResult,则操作将不会被执行
context.Result = new BadRequestResult();
}
public void OnActionExecuted(ActionExecutedContext context)
{
// ...
}
}
通过检查这些方面,您应该能够解决ASP.NET Core中Action Filter不被调用的问题。