private string renderViewToString(ControllerBase controller, object viewModel)
{
controller.ViewData.Model = viewModel;
using (var sw = new System.IO.StringWriter())
{
var viewResult = ViewEngines.Engines.FindView(controller.ControllerContext, viewModel.TemplateName, null);
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.ToString();
}
}
如下使用:
renderViewToString(this, model)