在自定义属性参数中使用ASP.NET MVC操作参数

时间:2011-05-28 18:47:14

标签: asp.net-mvc custom-attributes

我想做这样的事情

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

我知道我可以从属性代码本身内部调用filterContext.ActionDescriptor.GetParameters(),但有没有办法在控制器中使用它们?

1 个答案:

答案 0 :(得分:2)

实现此目的的正确方法是使用自定义操作过滤器并在内部使用filterContext.ActionDescriptor.GetParameters()或从RouteData获取所需参数。您不能在属性声明中包含动态值,因为属性表示在编译时烘焙到程序集中的元数据=> .NET不允许你这样做。在属性声明中只能使用静态或常量参数。