Использование параметров действия ASP.NET MVC в параметрах пользовательских атрибутов - PullRequest
0 голосов
/ 28 мая 2011

Я хочу сделать что-то подобное

[MyAttribute(Message="Please upgrade to view " + name)]
public ActionResult Details(string name)
{
    ....
}

Я знаю, что могу вызвать filterContext.ActionDescriptor.GetParameters() изнутри самого кода атрибута, но есть ли способ использовать их в контроллере?

1 Ответ

2 голосов
/ 28 мая 2011

Правильный способ добиться этого - использовать фильтр настраиваемых действий, а внутри использовать либо filterContext.ActionDescriptor.GetParameters(), либо извлечь требуемый параметр из RouteData.Вы не можете иметь динамические значения в объявлении атрибута, потому что атрибуты представляют метаданные, которые выпекаются в сборке во время компиляции => .NET этого не позволяет.При объявлении атрибута могут использоваться только статические или постоянные параметры.

...