Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Try using spark view engine (<a href="http://www.sparkviewengine.com/" rel="nofollow noreferrer">http://www.sparkviewengine.com/</a>). It is easy to use, nicer than standard engine and doesn't require to fake context.</p> <p>You can also use function from this answer <a href="https://stackoverflow.com/questions/483091/render-a-view-as-a-string/484932#484932">Render a view as a string</a> , but it requires faking context. This is the way standard view engine works and you can do nothing about that.</p> <p>This is my extension class that is used to generate views to string. First is for standard view engine, second for Spark:</p> <pre><code>public static class ControllerHelper { /// &lt;summary&gt;Renders a view to string.&lt;/summary&gt; public static string RenderViewToString(this Controller controller, string viewName, object viewData) { //Getting current response var response = HttpContext.Current.Response; //Flushing response.Flush(); //Finding rendered view var view = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName).View; //Creating view context var viewContext = new ViewContext(controller.ControllerContext, view, controller.ViewData, controller.TempData); //Since RenderView goes straight to HttpContext.Current, we have to filter and cut out our view var oldFilter = response.Filter; Stream filter = new MemoryStream(); ; try { response.Filter = filter; viewContext.View.Render(viewContext, null); response.Flush(); filter.Position = 0; var reader = new StreamReader(filter, response.ContentEncoding); return reader.ReadToEnd(); } finally { filter.Dispose(); response.Filter = oldFilter; } } /// &lt;summary&gt;Renders a view to string.&lt;/summary&gt; public static string RenderSparkToString(this Controller controller, string viewName, object viewData) { var view = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName).View; //Creating view context var viewContext = new ViewContext(controller.ControllerContext, view, controller.ViewData, controller.TempData); var sb = new StringBuilder(); var writer = new StringWriter(sb); viewContext.View.Render(viewContext, writer); writer.Flush(); return sb.ToString(); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload