Подтвердить что ты не робот

ASP.NET MVC - доступ к свойству контроллера в ActionFilter

Я использую Unity для создания нового класса в конструкторе контроллера и сохранения введенного класса в свойстве внутри контроллера. Затем я хочу использовать ActionFilter, чтобы узнать, имеет ли введенный класс некоторые свойства, которые я проверяю внутри этого конструктора. Итак, есть ли способ использовать ActionFilter для проверки свойств введенного класса?

Заранее спасибо

4b9b3361

Ответ 1

Что-то вроде этого?:

public class ValidateActionFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var yourController = filterContext.Controller as YourController;

        if (yourController == null)
        {
            throw new InvalidOperationException("It is not YourController !!!");
        }

        // It is YourController - validate here
        var yourProperty = yourController.YourProperty;

        // UPDATED ***************************
        // or test whether controller has property

        var property = filterContext.Controller.GetType().GetProperty("YourProperty");

        if(property == null)
        {
            throw new InvalidOperationException("There is no YourProperty !!!");
        }
    }
}