dev*_*v99 8 asp.net-mvc asp.net-mvc-3
给定动作名称,控制器名称和HTTP动词(GET,POST等),是否可以检查动作是否具有(即由特定动作过滤器属性修饰)?
请注意:操作和控制器不是当前操作和控制器,但可以是应用程序中的任何操作和控制器.
谢谢!
我不太确定你想在哪个地方检查它。如果您在OnActionExecuting或OnActionExecuted中执行此操作。ActionExecutedContext具有属性ActionDescriptor。在那里您可以找到IsDefined方法,该方法可以检查是否为此成员定义了指定属性类型的一个或多个实例。检查下面的代码示例:
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
var hasAutorizeAttr = filterContext.ActionDescriptor
.IsDefined(typeof(AuthorizeAttribute), false);
base.OnActionExecuted(filterContext);
}
Run Code Online (Sandbox Code Playgroud)
编辑:好的,现在我明白你的问题了。看起来没有优雅的解决方案。如果您需要使用AjaxExtensions.BeginForm方法来检查其他操作,我只看到一种方法 - 反射。但在我看来,在这种情况下你需要重新考虑你的架构。
| 归档时间: |
|
| 查看次数: |
7760 次 |
| 最近记录: |