private void DefaultActionInvoker_ActionCompleted(Object sender, ActionResultEventArgs e) { IAsyncController controller = sender as IAsyncController; if (controller != null) { controller.ActionCompleted -= DefaultActionInvoker_ActionCompleted; if (e.ActionResult != null) { ActionContext context = null; if (_contextCache.TryGetValue(controller, out context)) { _contextCache.Remove(controller); e.ActionResult.Execute(context); } } } }