ASP.net MVC-атрибут не выполняется в переопределенном методе контроллера - PullRequest
2 голосов
/ 23 октября 2009

У меня есть собственный атрибут, который корректно выполняется при использовании в методе моего контроллера.

Мой контроллер «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 Ответ

2 голосов
/ 23 октября 2009

Если это пользовательский атрибут, устанавливается ли он в значение true = true?

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

Также; возможно, обойти проблему; не делайте публичный атрибутивный метод virtual - вместо этого сделайте его вызовом protected virtual метода. Небольшая абстракция проходит долгий путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...