コード例 #1
0
 protected virtual void InvokeActionResult(
     ControllerContext controllerContext,
     ActionResult actionResult
     )
 {
     actionResult.ExecuteResult(controllerContext);
 }
コード例 #2
0
        /// <summary>
        /// Renders an action result to a string. This is done by creating a fake http context
        /// and response objects and have that response send the data to a string builder
        /// instead of the browser.
        /// </summary>
        /// <param name="result">The action result to be rendered to string.</param>
        /// <returns>The data rendered by the given action result.</returns>
        protected string RenderActionResultToString(ActionResult result)
        {
            // Create memory writer.
            var sb = new StringBuilder();
            var memWriter = new StringWriter(sb);

            // Create fake http context to render the view.
            var fakeResponse = new HttpResponse(memWriter);
            var fakeContext = new HttpContext(System.Web.HttpContext.Current.Request, fakeResponse);
            var fakeControllerContext = new ControllerContext(
                new HttpContextWrapper(fakeContext),
                this.ControllerContext.RouteData,
                this.ControllerContext.Controller);
            var oldContext = System.Web.HttpContext.Current;
            System.Web.HttpContext.Current = fakeContext;

            // Render the view.
            result.ExecuteResult(fakeControllerContext);

            // Restore data.
            System.Web.HttpContext.Current = oldContext;

            // Flush memory and return output.
            memWriter.Flush();
            return sb.ToString();
        }
コード例 #3
0
        public override void ExecuteResult(ControllerContext context)
        {
            // Add the notification
            context.Controller.Notifications().Add(_message, _position, _alertType, _timeout, _animation, _modal);

            // Continue with execution
            _result.ExecuteResult(context);
        }
コード例 #4
0
 protected override ResultExecutedContext InvokeActionResultWithFilters(ControllerContext controllerContext, IList<IResultFilter> filters, ActionResult actionResult)
 {
     if (actionResult is AsyncResult)
       {
     actionResult.ExecuteResult(controllerContext);
     return null;
       }
       return base.InvokeActionResultWithFilters(controllerContext, filters, actionResult);
 }
コード例 #5
0
        public static string ExecuteResult(ControllerContext controllerContext, ActionResult actionResult)
        {
            if (IsExclusiveResult(actionResult))
            {
                ExecuteExclusiveResult(controllerContext, actionResult);
                return string.Empty;
            }
            else
            {
                using (StringWriter textWriter = new StringWriter())
                {
                    controllerContext.HttpContext = new ActionResultExecutorHttpContext(controllerContext.HttpContext);
                    ((ActionResultExecutorHttpResponse)controllerContext.HttpContext.Response).Output = textWriter;
                    actionResult.ExecuteResult(controllerContext);
                    //reset HttpContext
                    controllerContext.HttpContext = null;

                    return textWriter.ToString();
                }
            }
        }
コード例 #6
0
ファイル: PDF.cs プロジェクト: Fiip/DeathFolder
        private static string ToXml(ActionResult result, ControllerContext context)
        {
            // Create memory writer.
            var sb = new StringBuilder();
            var memWriter = new StringWriter(sb);

            // Create fake http context to render the view.
            var fakeResponse = new HttpResponse(memWriter);
            var fakeContext = new HttpContext(HttpContext.Current.Request, fakeResponse);
            var fakeControllerContext = new ControllerContext(new HttpContextWrapper(fakeContext), context.RouteData, context.Controller);
            var oldContext = HttpContext.Current;
            HttpContext.Current = fakeContext;

            // Render the view.
            result.ExecuteResult(fakeControllerContext);

            // Restore old context.
            HttpContext.Current = oldContext;

            // Flush memory and return output.
            memWriter.Flush();
            return sb.ToString();
        }
コード例 #7
0
        /// <summary>
        /// Executes the given <see cref="ActionResult"/>.
        /// </summary>
        /// <param name="actionResult">The action result to execute.</param>
        /// <returns>The result of executing the action result.</returns>
        public virtual string Execute(ActionResult actionResult)
        {
            if (actionResult == null)
            throw new ArgumentNullException("actionResult");

              // Build a new ControllerContext, using a StringWriter to capture the result of executing the ActionResult.
              using (var writer = new StringWriter(CultureInfo.InvariantCulture))
              {
            var response = new HttpResponse(writer);
            var context = new HttpContext(_controllerContext.HttpContext.ApplicationInstance.Request, response);
            var controllerContext = new ControllerContext(new HttpContextWrapper(context), _controllerContext.RouteData, _controllerContext.Controller);

            var oldContext = HttpContext.Current;
            HttpContext.Current = context;

            actionResult.ExecuteResult(controllerContext);

            HttpContext.Current = oldContext;

            writer.Flush();

            return writer.ToString();
              }
        }
コード例 #8
0
 protected virtual void InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
 {
     actionResult.ExecuteResult(controllerContext);
 }
コード例 #9
0
 public static void Flush(this ControllerBase controller, ActionResult result)
 {
     result.ExecuteResult(controller.ControllerContext);
     controller.ControllerContext.HttpContext.Response.Flush();
 }
コード例 #10
0
 public void RenderPage(Page_Context page_context, System.Web.Mvc.ActionResult actionResult)
 {
     actionResult.ExecuteResult(page_context.ControllerContext);
 }