我可以在ASP.NET MVC3中获取路由的最终HTML输出吗?

时间:2011-11-23 08:08:38

标签: asp.net-mvc-3

有没有办法从ASP.NET MVC3中的代码获取“最终HTML输出”(在浏览器中执行“查看源代码”时获得的内容),而不使用类似WebRequest的内容?

例如:

string htmlCode = Url.GetHtml("Action", "Controller", new { id = 7 });

2 个答案:

答案 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();
    }
}