/// <summary> /// 依据当前Http路由请求和处理请求的控制器信息获取操作方法信息 /// </summary> /// <param name="context"></param> /// <returns></returns> public virtual ActionMethodInfo GetActionMethod(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } else { var newSelector = new NonParameterActionMethodSelector(context); var action = newSelector.GetActionMethod(ActionFlags); if (action != null && action.Attributes != null) { foreach (var attr in action.Attributes) { if (!attr.Validate(context.HttpContext)) { var eventArgs = new ActionAttributeValidateFailedEventArgs(context.Controller.Name, context.ActionName, attr); this._ActionAttributeValidateFailed(context.Controller, eventArgs); break; } } } return action; } }
/// <summary> /// 依据当前Http路由请求和处理请求的控制器信息获取操作方法信息 /// </summary> /// <param name="context"></param> /// <returns></returns> public virtual ActionMethodInfo GetActionMethod(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } else { var newSelector = new NonParameterActionMethodSelector(context); var action = newSelector.GetActionMethod(ActionFlags); if (action != null && action.Attributes != null) { foreach (var attr in action.Attributes) { if (!attr.Validate(context.HttpContext)) { var eventArgs = new ActionAttributeValidateFailedEventArgs(context.Controller.Name, context.ActionName, attr); this._ActionAttributeValidateFailed(context.Controller, eventArgs); break; } } } return(action); } }