Output di una vista in una variabile stringa

Da Webmobili Wiki.

Funzione interessante che non utilizziamo ma potrebbe essere utile.

/// <summary>
/// Restituisce il contenuto della vista chiamata come una stringa
/// </summary>
/// <param name="viewName">Percorso alal vista</param>
/// <param name="model">Modello</param>
/// <param name="controllerContext">Il contesto</param>
/// <returns></returns>
public static string renderRazorViewToString(string viewName, object model, ControllerContext controllerContext) {
  ViewDataDictionary ViewData = new ViewDataDictionary(model);
  using (var sw = new StringWriter()) {
    var viewResult = ViewEngines.Engines.FindPartialView(controllerContext, viewName);
    var viewContext = new ViewContext(controllerContext, viewResult.View, ViewData, new TempDataDictionary(), sw);
    viewResult.View.Render(viewContext, sw);
    viewResult.ViewEngine.ReleaseView(controllerContext, viewResult.View);
    return sw.GetStringBuilder().ToString();
  }
}