2013-06-24 3 views

ответ

12

Это решение помогло мне и «спасло мой день».

https://coderwall.com/p/8ie5jg

using System.IO; 
using System.Web.Mvc; 

public class RenderRazorViewToString 
{ 
    #region Render 

    public string Render(Controller controller, string viewName, object model) 
    { 
     controller.ViewData.Model = model; 

     using (var sw = new StringWriter()) 
     { 
      var viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName); 
      var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw); 
      viewResult.View.Render(viewContext, sw); 
      viewResult.ViewEngine.ReleaseView(controller.ControllerContext, viewResult.View); 
      return sw.GetStringBuilder().ToString(); 
     } 
    } 

    #endregion 
} 

Отказ от ответственности: Я не автор, я просто хочу поделиться, чтобы помочь другим людям, как я.