我正在开发一个 ASP.NET MVC 4 应用程序。我正在尝试构建一个报告屏幕,由于数据的原因需要一段时间(约 30 秒)才能生成。我想做的是获取视图生成的 HTML 并将其保存到文本文件中。
有没有办法获取视图生成的 HTML?如果是这样,怎么做?请注意,我的 .cshtml 文件包含一些 RAZOR。我不确定这是否会影响这个等式。
非常感谢你的帮助!
我正在开发一个 ASP.NET MVC 4 应用程序。我正在尝试构建一个报告屏幕,由于数据的原因需要一段时间(约 30 秒)才能生成。我想做的是获取视图生成的 HTML 并将其保存到文本文件中。
有没有办法获取视图生成的 HTML?如果是这样,怎么做?请注意,我的 .cshtml 文件包含一些 RAZOR。我不确定这是否会影响这个等式。
非常感谢你的帮助!
我使用以下函数来做这类事情,通常是当我想使用 razor 创建电子邮件 HTML 时:
public static string RenderViewToString(string viewName, object model, ControllerContext context)
{
context.Controller.ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(context, viewName);
var viewContext = new ViewContext(context, viewResult.View, context.Controller.ViewData, context.Controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}