Skip to content

Instantly share code, notes, and snippets.

@smailliwcs
Created September 22, 2020 15:25
Show Gist options
  • Save smailliwcs/e021b3ff6fe75348fc118ead72c40061 to your computer and use it in GitHub Desktop.
Save smailliwcs/e021b3ff6fe75348fc118ead72c40061 to your computer and use it in GitHub Desktop.
Programmatic view rendering
using System.IO;
using System.Web.Mvc;
public class ControllerBase : Controller
{
protected string RenderResult(ViewEngineResult result, object model)
{
ViewData.Model = model;
using (StringWriter writer = new StringWriter())
{
ViewContext viewContext = new ViewContext(ControllerContext, result.View, ViewData, TempData, writer);
result.View.Render(viewContext, writer);
result.ViewEngine.ReleaseView(ControllerContext, result.View);
return writer.ToString();
}
}
protected string RenderPartialView(string viewName, object model)
{
return RenderResult(ViewEngines.Engines.FindPartialView(ControllerContext, viewName), model);
}
protected string RenderView(string viewName, string masterName, object model)
{
return RenderResult(ViewEngines.Engines.FindView(ControllerContext, viewName, masterName), model);
}
protected string RenderView(string viewName, object model)
{
return RenderView(viewName, null, model);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment