/// <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); }
/// <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); }