Asp.net mvc 未调用ActionFilterAttribute
我有一个自定义操作筛选器:Asp.net mvc 未调用ActionFilterAttribute,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我有一个自定义操作筛选器: public class PermissionChecker: ActionFilterAttribute { private int _permissionId { get; set; } private IUserSelectorService _userService { get; set; } public PermissionChecker(int permissionId) { _permissionId
public class PermissionChecker: ActionFilterAttribute
{
private int _permissionId { get; set; }
private IUserSelectorService _userService { get; set; }
public PermissionChecker(int permissionId)
{
_permissionId = permissionId;
_userService = new UserSelectorService();
}
public PermissionChecker(int permissionId, IUserSelectorService userService)
{
_permissionId = permissionId;
_userService = userService;
}
public override void OnActionExecuting(HttpActionContext actionContext)
{
base.OnActionExecuting(actionContext);
}
}
我把它放在我的行动中:
public class HomeController : Controller
{
[PermissionChecker(1)]
public ActionResult Index()
{
return View();
}
}
但它不起作用!即使在PermissionChecker的构造函数中,代码也不会传入onActionExecuting。onActionExecuting的签名不正确,它应该具有: 提供ActionFilterAttribute类的ActionExecuting方法的上下文
这不是mvc3特有的,它适用于mvc4,还添加了指向msdn引用的链接。是的,我使用的是System.Web.Http.Filters的ActionFilterAttribute,而不是System.Web.Mvc。感谢
public override void OnActionExecuting(ActionExecutingContext filterContext){
base.OnActionExecuting(filterContext);
}