Ale*_*voi 30 asp.net attributes filter custom-attributes asp.net-mvc-3
我看到在一种情况下我们可以覆盖OnActionExecuting或OnActionExecuted继承ActionFilterAttribute类的方法,如下所示:
public class MyFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{ // bla bla }
}
Run Code Online (Sandbox Code Playgroud)
在其他情况下,我们也可以实现IActionFilter并FilterAttribute喜欢这样:
public class MySecondFilterAttribute : FilterAttribute, IActionFilter
{
public void OnActionExecuted(ActionExecutingContext filterContext) {}
}
Run Code Online (Sandbox Code Playgroud)
那么,这两种方法之间是否有任何差异,可能是任何特殊情况下,最好使用其中一种方法而不是另一种方法?
提前致谢.
wna*_*nto 23
基本上,FilterAttribute提供MVC属性的最低级别行为,并实现提供Order和AllowMultiple属性的IMvcFilter.
ActionFilterAttribute是过滤操作和结果的基础,因为它是IActionFilter,IResultFilter的实现,并从FilterAttribute继承.
您的MySecondFilterAttribute实现导致ActionFilterAttribute没有IResultFilter功能(OnResultExecuting和OnResultExecuted).