Ejemplo n.º 1
0
        /// <summary>
        /// BBernard - 08/02/2016
        /// Updated to take in ViewEngineResult reference and re-use GetView() internal method for greater flexibility and code re-use.
        ///
        /// Internal method that handles rendering of either partial or
        /// or full views.
        /// </summary>
        /// <param name="viewPath">
        /// The path to the view to render. Either in same controller, shared by
        /// name or as fully qualified ~/ path including extension
        /// </param>
        /// <param name="viewEngineResult"></param>
        /// <param name="model">Model to render the view with</param>
        /// <param name="isPartial">Determines whether to render a full or partial view</param>
        /// <returns>String of the rendered view</returns>
        protected virtual async Task <TemplatedRenderResult> RenderViewInternalAsync(string viewPath, object?model = null, bool isPartial = false)
        {
            await using var sw = new StringWriter();

            await TryRenderViewToWriterInternalAsync(viewPath, sw, model, isPartial).ConfigureAwait(false);

            var result = sw.ToString();

            var renderResult = new TemplatedRenderResult(result);

            return(renderResult);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// BBernard - 08/02/2016
        /// Updated to take in ViewEngineResult reference and re-use GetView() internal method for greater flexibility and code re-use.
        ///
        /// Internal method that handles rendering of either partial or
        /// or full views.
        /// </summary>
        /// <param name="viewPath">
        /// The path to the view to render. Either in same controller, shared by
        /// name or as fully qualified ~/ path including extension
        /// </param>
        /// <param name="model">Model to render the view with</param>
        /// <param name="partial">Determines whether to render a full or partial view</param>
        /// <returns>String of the rendered view</returns>
        protected virtual TemplatedRenderResult RenderViewInternal(string viewPath, object model, bool partial = false)
        {
            //BBernard - 08/02/2016
            //Re-factored this code to remove duplicate logic and call the existing RenderViewToWriterInternal method which
            //already used a TextWriter for which our StringWriter inherits from; eliminating duplicated code logic.
            string result = null;

            using (var sw = new StringWriter())
            {
                RenderViewToWriterInternal(viewPath, sw, model, partial);
                result = sw.ToString();
            }

            //Return a RenderResult response object...
            var renderResult = new TemplatedRenderResult(result);

            return(renderResult);
        }