C# ASP MVC过滤器,在哪里实现接口?
只是想知道,谷歌搜索如何在asp mvc 4中使用过滤器。我发现有些人这样定义他们:C# ASP MVC过滤器,在哪里实现接口?,c#,asp.net,asp.net-mvc,filter,action-filter,C#,Asp.net,Asp.net Mvc,Filter,Action Filter,只是想知道,谷歌搜索如何在asp mvc 4中使用过滤器。我发现有些人这样定义他们: public class CustomFilter : ActionFilterAttribute public class CustomFilter : ActionFilterAttribute, IActionFilter 有些是这样的: public class CustomFilter : ActionFilterAttribute public class CustomFilter : Act
public class CustomFilter : ActionFilterAttribute
public class CustomFilter : ActionFilterAttribute, IActionFilter
有些是这样的:
public class CustomFilter : ActionFilterAttribute
public class CustomFilter : ActionFilterAttribute, IActionFilter
ActionFilterAttribute已经有了所有要重写的操作,为什么还要实现该接口呢
例如,在下一个代码中,在最后再次调用过滤器,这是为什么
public class
CustomActionFilter : ActionFilterAttribute, IActionFilter
{
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
// TODO: Add your acction filter's tasks here
// Log Action Filter Call
MusicStoreEntities storeDB = new MusicStoreEntities();
ActionLog log = new ActionLog()
{
Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName,
Action = filterContext.ActionDescriptor.ActionName + " (Logged By: Custom
Action Filter)",
IP = filterContext.HttpContext.Request.UserHostAddress,
DateTime = filterContext.HttpContext.Timestamp
};
storeDB.ActionLogs.Add(log);
storeDB.SaveChanges();
this.OnActionExecuting(filterContext);
}
}
如果选中,您将看到它是一个抽象类,继承了IActionFilter和IResultFilter接口
实际上继承自ActionFilterAttribute
相当于继承类FilterAttribute和接口IActionFilter和IResultFilter
这和
public class CustomFilter : ActionFilterAttribute, IActionFilter, IResultFilter
因此,从ActionFilterAttribute继承与从ActionFilterAttribute和IActionFilter继承没有什么不同。但似乎是多余的,不是吗?那么从ActionFilterAttribute继承就足够了?@user1777914,完全多余。是,ActionFilterAttribute是整个软件包。