2013-02-15 65 views
2

我正在研究ASP.NET MVC 4應用程序。我正在嘗試構建一個需要一段時間(〜30秒)才能生成的報告屏幕,因爲這些數據。我想要做的是獲取視圖生成的HTML並將其保存到文本文件。獲取由ASP.NET MVC生成的HTML查看

有沒有辦法讓一個View生成的HTML?如果是這樣,怎麼樣?請注意我的.cshtml文件包含一些RAZOR。我不確定這是否會影響這個等式。

非常感謝您的幫助!

+1

爲什麼你沒有在瀏覽器中打開和保存來源,讓所有的HTML組件..一旦它在瀏覽器中,將只有純html,css,腳本沒有剃刀語法。 – Garry 2013-02-15 15:28:46

+0

你打算用這個HTML做什麼?緩存輸出?如果是這樣,那麼最好查看緩存數據。 – ChrisBint 2013-02-15 15:30:31

+0

爲什麼你想寫這個文件?做什麼克里斯說,看看緩存請求 – CR41G14 2013-02-15 15:31:57

回答

1

我用下面的函數做這樣的事情的時候,通常我想用剃刀創建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(); 
    } 
}