【发布时间】:2010-06-08 10:25:23
【问题描述】:
OnActionExecuting 在动作即将执行时触发。
如果我的操作有 actionfilter
[myCustomActionFilter]
public ActionResult MyAction()
{
//implementation
}
是否可以确定(在OnActionExecuting 事件中)一个动作应用了myCustomActionFilter?
【问题讨论】:
OnActionExecuting 在动作即将执行时触发。
如果我的操作有 actionfilter
[myCustomActionFilter]
public ActionResult MyAction()
{
//implementation
}
是否可以确定(在OnActionExecuting 事件中)一个动作应用了myCustomActionFilter?
【问题讨论】:
上述方法区分大小写。
public void OnActionExecuting(ActionExecutingContext filterContext)
{
var actionDescriptor = filterContext.ActionDescriptor;
if (actionDescriptor.IsDefined(typeof(myCustonActionFilter), true))
{
var attributeInstance = (myCustomActionFilter) actionDescriptor.GetCustomAttributes(typeof(myCustomActionFilter), true);
}
}
【讨论】:
public void OnActionExecuting(ActionExecutingContext filterContext)
{
var controllerType = filterContext.Controller.GetType();
var actionMethod = controllerType.GetMethod(filterContext.ActionDescriptor.ActionName);
if (actionMethod.IsDefined(typeof(myCustomActionFilter),true))
{
var attributeInstance =
(myCustomActionFilter) actionMethod.GetCustomAttributes(typeof (myCustomAct
ionFilter), true);
}
【讨论】: