Могу ли я получить окончательный вывод HTML маршрута в ASP.NET MVC3? - PullRequest
1 голос
/ 23 ноября 2011

Есть ли способ получить «окончательный вывод HTML» (что вы получаете, когда вы делаете «Просмотр источника» в браузере) из кода в ASP.NET MVC3, не используя что-то вроде WebRequest?

Например, что-то вроде этого:

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

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

Это работает для меня:

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();
    }
}
0 голосов
/ 23 ноября 2011

Вы можете сделать это так с RazorGenerator.Mvc, который доступен в виде пакета Nuget.Вы можете прочитать больше об этом здесь: http://razorgenerator.codeplex.com/ Он был предназначен для модульного тестирования, но я думаю, что это то, что вы ищете.

var view = new myview();
HtmlDocument document = view.RenderAsHtml();

Надеюсь, что это поможет вам в ваших попытках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...