有沒有辦法從ASP.NET MVC3中的代碼中獲取「最終HTML輸出」(當您在瀏覽器中執行「查看源代碼」時得到的內容),而無需使用WebRequest之類的東西?我可以在ASP.NET MVC3中獲取路由的最終HTML輸出嗎?
例如是這樣的:
string htmlCode = Url.GetHtml("Action", "Controller", new { id = 7 });
有沒有辦法從ASP.NET MVC3中的代碼中獲取「最終HTML輸出」(當您在瀏覽器中執行「查看源代碼」時得到的內容),而無需使用WebRequest之類的東西?我可以在ASP.NET MVC3中獲取路由的最終HTML輸出嗎?
例如是這樣的:
string htmlCode = Url.GetHtml("Action", "Controller", new { id = 7 });
你可以用RazorGenerator.Mvc像這樣做這是作爲一個NuGet包。您可以在這裏閱讀更多關於它的信息:http://razorgenerator.codeplex.com/它用於單元測試,但我認爲這是您的需求。
var view = new myview();
HtmlDocument document = view.RenderAsHtml();
希望能幫助你做你想做的事。
這個工作對我來說:
public static string ViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var stringWriter = new StringWriter())
{
var view = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
var viewContext = new ViewContext(ControllerContext, view.View, ViewData, TempData, stringWriter);
view.View.Render(viewContext, stringWriter);
view.ViewEngine.ReleaseView(ControllerContext, view.View);
return stringWriter.GetStringBuilder().ToString();
}
}
呈現屬於與其調用相同的控制器的視圖。這個問題顯示了一個指定任意控制器的例子。 – jgauffin
有一個在MVC – jgauffin
真沒有'RenderAsHtml'方法,我忘了,你需要安裝RazorGenrator包。添加了關於該信息的信息 –