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)