Метод Атрибут с параметром из метода? - PullRequest
1 голос
/ 17 августа 2010

Если это имеет значение, это в ASP.NET MVC2 - как мне это сделать - как применить параметр "id" к атрибуту?Следующий синтаксис явно не работает:)

    [AuthorizeProject(ProjectId = id)]
    public ActionResult Browse(int id)
    {
        // Stuff

        return View();
    }

Ответы [ 3 ]

1 голос
/ 17 августа 2010

Вместо того, чтобы пытаться установить в конструкторе Attribute, как насчет установки ProjectId в одном из обработчиков событий? У вас будет доступ к RouteData через объект контекста.

public override void OnAuthorization(AuthorizationContext filterContext)
    {
        ProjectId = filterContext.RouteData.Values["id"].ToString();
    }

Вам просто нужно убедиться, что вы используете его в методах, которые имеют параметр id или что вы выполняете какую-либо проверку в методе OnAuthorization.

0 голосов
/ 17 августа 2010

Параметры атрибута и значения свойств должны быть известны во время компиляции, обычно литералы.

Нельзя передать параметры метода в атрибут.

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

0 голосов
/ 17 августа 2010

Параметр id функции Browse не находится в области действия в момент оценки атрибута.Поэтому вы не можете сделать это.

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