protected override ActionDescriptor FindAction(ControllerContext controllerContext, ControllerDescriptor controllerDescriptor, string actionName) { var method = controllerContext.HttpContext.Request.HttpMethod; var actionDescriptor = controllerDescriptor.FindAction(controllerContext, method); return actionDescriptor; }
protected virtual ActionDescriptor FindAction(ControllerContext controllerContext, ControllerDescriptor controllerDescriptor, string actionName) { ActionDescriptor actionDescriptor = controllerDescriptor.FindAction(controllerContext, actionName); return actionDescriptor; }
protected virtual ActionDescriptor FindAction(ControllerContext controllerContext, ControllerDescriptor controllerDescriptor, string actionName) { Contract.Assert(controllerContext != null); Contract.Assert(controllerContext.RouteData != null); Contract.Assert(controllerDescriptor != null); if (controllerContext.RouteData.HasDirectRouteMatch()) { List<DirectRouteCandidate> candidates = GetDirectRouteCandidates(controllerContext); DirectRouteCandidate bestCandidate = DirectRouteCandidate.SelectBestCandidate(candidates, controllerContext); if (bestCandidate == null) { return null; } else { // We need to stash the RouteData of the matched route into the context, so it can be // used for binding. controllerContext.RouteData = bestCandidate.RouteData; controllerContext.RequestContext.RouteData = bestCandidate.RouteData; // We need to remove any optional parameters that haven't gotten a value (See MvcHandler) bestCandidate.RouteData.Values.RemoveFromDictionary((entry) => entry.Value == UrlParameter.Optional); return bestCandidate.ActionDescriptor; } } else { ActionDescriptor actionDescriptor = controllerDescriptor.FindAction(controllerContext, actionName); return actionDescriptor; } }
protected virtual bool TryFindActionDescriptor(string action, ControllerContext controllerContext, ControllerDescriptor controllerDescriptor, out ActionDescriptor actionDescriptor) { actionDescriptor = null; try { actionDescriptor = controllerDescriptor.FindAction(controllerContext, action); if (actionDescriptor != null) return true; } catch { return false; } return false; }
protected virtual ActionDescriptor FindAction(ControllerContext controllerContext, ControllerDescriptor controllerDescriptor, string actionName) { ActionDescriptor actionDescriptor = controllerDescriptor.FindAction(controllerContext, actionName); return(actionDescriptor); }