2

我正在开发一个 ASP.NET MVC 4 应用程序。我正在尝试构建一个报告屏幕,由于数据的原因需要一段时间(约 30 秒)才能生成。我想做的是获取视图生成的 HTML 并将其保存到文本文件中。

有没有办法获取视图生成的 HTML?如果是这样,怎么做?请注意,我的 .cshtml 文件包含一些 RAZOR。我不确定这是否会影响这个等式。

非常感谢你的帮助!

4

1 回答 1

1

我使用以下函数来做这类事情,通常是当我想使用 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();
    }
}
于 2013-03-04T16:53:07.720 回答