public void Execute(RequestContext context) { ControllerContext controllerContext = new ControllerContext(); controllerContext.RequestContext = context; controllerContext.Controller = this; string actionName = context.RouteData.ActionName; this.ActionInvoker.InvokeAction(controllerContext, actionName); }
public void InvokeAction(ControllerContext context, string actionName) { MethodInfo method = GetFirstMemberInfo(context.Controller.GetType().GetMethods(), actionName); List<object> parameters = new List<object>(); foreach (ParameterInfo parameter in method.GetParameters()) { parameters.Add(this.ModelBinder.BindModel(context, parameter.Name, parameter.ParameterType)); } ActionResult actionResult = method.Invoke(context.Controller, parameters.ToArray()) as ActionResult; actionResult.ExecuteResult(context); }
public abstract void ExecuteResult(ControllerContext context);
public override void ExecuteResult(ControllerContext context) { context.RequestContext.HttpContext.Response.Write(this.RawData); }