在C#中,过滤器(Filter)通常用于ASP.NET Core MVC应用程序中,以便在请求处理管道中执行特定操作。要配置过滤器,请按照以下步骤操作:
IActionFilter
接口:using Microsoft.AspNetCore.Mvc.Filters;
public class CustomActionFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// 在操作方法执行之前执行的代码
}
public void OnActionExecuted(ActionExecutedContext context)
{
// 在操作方法执行之后执行的代码
}
}
Startup
类的ConfigureServices
方法中完成:using Microsoft.Extensions.DependencyInjection;
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews(options =>
{
options.Filters.Add(new CustomActionFilter());
});
}
这将为所有控制器和操作方法应用自定义操作过滤器。
[CustomActionFilter]
属性即可:using Microsoft.AspNetCore.Mvc;
[CustomActionFilter]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
这样,自定义操作过滤器将仅应用于HomeController
控制器及其操作方法。
注意:在上述示例中,我们使用了操作过滤器(IActionFilter
)。类似地,你可以创建并配置其他类型的过滤器,如异常过滤器(IExceptionFilter
)、授权过滤器(IAuthorizationFilter
)等。只需实现相应的接口并在ConfigureServices
方法中将其添加到过滤器集合即可。