C# 获取由ASP.NET MVC视图生成的HTML

C# 获取由ASP.NET MVC视图生成的HTML,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我正在开发一个ASP.NETMVC4应用程序。我正试图构建一个报告屏幕,由于数据的原因,它需要一段时间(约30秒)才能生成。我想做的是获取视图生成的HTML并将其保存到文本文件中 有没有办法获取视图生成的HTML?如果是,怎么做?请注意,我的.cshtml文件包含一些RAZOR。我不确定这是否符合这个等式 非常感谢你的帮助 通常当我想使用razor创建电子邮件HTML时,我使用以下函数来完成这类工作: public static string RenderViewToString(string

我正在开发一个ASP.NETMVC4应用程序。我正试图构建一个报告屏幕,由于数据的原因,它需要一段时间(约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();
    }
}

为什么不在浏览器中打开并将源代码另存为以获取所有html组件..一旦进入浏览器,将不再使用razor语法,只有简单的html、css和脚本。您打算如何处理此html?缓存输出?如果是这样的话,最好还是看看缓存数据。为什么要将其写入文件?照Chris说的做,看看缓存请求我认为Bill Jones希望导出报表数据而不是html…如果是这种情况,使用html作为asp.net导出是个坏主意,c#已经提供了报表导出支持…查看此答案,看看是否有帮助。