gpt4 book ai didi

asp.net - 在ASP.NET MVC 3中实现FilterAttribute,IActionFilter和从ActionFilterAttribute继承之间有什么区别?

转载 作者:行者123 更新时间:2023-12-03 09:11:56 25 4
gpt4 key购买 nike

我看到在一种情况下,我们可以重写从OnActionExecuting类继承的OnActionExecutedActionFilterAttribute方法,如下所示:

public class MyFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{ // bla bla }
}

在其他情况下,我们也可以像这样实现 IActionFilterFilterAttribute:
public class MySecondFilterAttribute : FilterAttribute, IActionFilter 
{
public void OnActionExecuted(ActionExecutingContext filterContext) {}
}

那么,这两种方法之间是否存在差异,也许在某些特定情况下,最好使用其中一种而不是另一种?

提前致谢。

最佳答案

基本上,FilterAttribute提供了MVC属性的最底层行为,并实现了提供Order和AllowMultiple属性的IMvcFilter。

ActionFilterAttribute是筛选操作和结果的基础,因为它是IActionFilter,IResultFilter的实现,并且是从FilterAttribute继承的。

您的MySecondFilterAttribute实现导致没有IResultFilter功能(OnResultExecuting和OnResultExecuted)的ActionFilterAttribute。

关于asp.net - 在ASP.NET MVC 3中实现FilterAttribute,IActionFilter和从ActionFilterAttribute继承之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14879340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com