如果重要,这是在ASP.NET MVC2中 - 我该怎么做 - 如何将“id”参数应用于属性?以下语法显然不起作用:)
[AuthorizeProject(ProjectId = id)]
public ActionResult Browse(int id)
{
// Stuff
return View();
}
答案 0 :(得分:1)
不是尝试在Attribute构造函数中设置,而是在其中一个事件处理程序中设置ProjectId?您可以通过上下文对象访问RouteData。
public override void OnAuthorization(AuthorizationContext filterContext)
{
ProjectId = filterContext.RouteData.Values["id"].ToString();
}
您只需要确保在具有id参数的方法上使用它,或者在OnAuthorization方法中执行某种类型的验证检查。
答案 1 :(得分:0)
在评估属性时,Browse函数的id参数不在范围内。你不能这样做。
答案 2 :(得分:0)
必须在编译时知道属性参数和属性值,通常是文字。
您无法将方法参数传递给属性。
根据您的目的,将采用不同的方法,但如果您没有详细了解您的建议,那么建议很难。