/// <summary> /// The job of this method is invoke an action and ultimately populate the /// </summary> /// <param name="application">The current application</param> /// <param name="context">A context which stores the request and response contexts.</param> public async Task Execute(MvcApplication application, NavigationContext context) { Initialize(application, context); var action = RouteData.Action; var actionResult = await ActionInvoker.InvokeAction(ControllerContext, action); var view = ((ViewResult)actionResult).View; view.Initialize(application.CreateViewContext(this)); context.Response.View = view; }
/// <summary> /// The job of this method is invoke an action and ultimately populate the /// </summary> /// <param name="application">The current application</param> /// <param name="context">A context which stores the request and response contexts.</param> /// <param name="continuation">This method is asynchronous -- to take some action after the execution /// completes, you must pass the continuation argument.</param> public Task Execute(MvcApplication application, NavigationContext context) { Initialize(application, context); var action = RouteData.Action; var task = ActionInvoker.InvokeAction(ControllerContext, action); return(task.ContinueWith(x => { var actionResult = x.Result; var view = ((ViewResult)actionResult).View; view.Initialize(application.CreateViewContext(this)); context.Response.View = view; })); }