我有一个自定义属性,在我的控制器中的方法中使用时正确执行。
我的控制器“A”继承自控制器“B”,控制器“A”覆盖控制器“B”的方法之一。我将自定义属性应用于该方法,但它根本不执行。我也尝试使用基本方法,但仍然相同。
如前所述,如果应用于未覆盖的方法,则自定义属性将按预期执行。
我错过了什么吗?
执行以下操作方法的属性:
[RequireAuthorizationFor(Operation.Create)]
public ViewResult New()
{
return View("Edit", new TermDateDto());
}
但不适用于以下内容:
[RequireAuthorizationFor(Operation.List)]
public override ViewResult List(Query query, int? pageNo)
{
return base.List(query, pageNo);
}
答案 0 :(得分:2)
如果是自定义属性,是否设置为inherit = true?
[AttributeUsage(AttributeTargets.Method, Inherited = true)]
也;也许是支持这个问题;不要使用公开归因方法virtual
- 而是让调用 protected virtual
方法。一点点抽象都有很长的路要走。