ASP.net MVC属性未在重写的控制器方法中执行

时间:2009-10-23 06:42:46

标签: asp.net-mvc attributes

我有一个自定义属性,在我的控制器中的方法中使用时正确执行。

我的控制器“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);
    }

1 个答案:

答案 0 :(得分:2)

如果是自定义属性,是否设置为inherit = true?

[AttributeUsage(AttributeTargets.Method, Inherited = true)]

也;也许是支持这个问题;不要使用公开归因方法virtual - 而是让调用 protected virtual方法。一点点抽象都有很长的路要走。