有没有办法从ASP.NET MVC3中的代码获取“最终HTML输出”(在浏览器中执行“查看源代码”时获得的内容),而不使用类似WebRequest的内容?
例如:
string htmlCode = Url.GetHtml("Action", "Controller", new { id = 7 });
答案 0 :(得分:0)
你可以使用RazorGenerator.Mvc这样做,它可以作为Nuget包使用。你可以在这里阅读更多相关信息:http://razorgenerator.codeplex.com/它主要用于单元测试,但我认为这是你想要的。
var view = new myview();
HtmlDocument document = view.RenderAsHtml();
希望能帮助您完成尝试。
答案 1 :(得分:0)
这对我有用:
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();
}
}