是否可以通过代码获取从操作输出的结果HTML?
答案 0 :(得分:0)
答案 1 :(得分:0)
具体说明为什么要查看MvcIntegrationTestFramework。
它可以节省您编写自己的帮助程序以传输结果,并且已证明可以正常工作。我假设这将是一个测试项目,作为奖励,一旦你有这个设置,你将拥有其他测试功能。主要麻烦可能是整理依赖链。
private static readonly string mvcAppPath =
Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory
+ "\\..\\..\\..\\MyMvcApplication");
private readonly AppHost appHost = new AppHost(mvcAppPath);
[Test]
public void Root_Url_Renders_Index_View()
{
appHost.SimulateBrowsingSession(browsingSession => {
RequestResult result = browsingSession.ProcessRequest("");
Assert.IsTrue(result.ResponseText.Contains("<!DOCTYPE html"));
});
}
答案 2 :(得分:0)
以下是我在Razor语法中如何完成它的示例。我需要从一个动作中获取html作为另一个动作中的字符串(以PDF格式呈现为渲染)
ViewResult viewResult = ActionYouWhatHtmlFrom(id);
using (var writer = new StringWriter())
{
ViewEngineResult result = ViewEngines
.Engines
.FindView(ControllerContext,
viewResult.ViewName, "_YourLayout");
var viewPath = ((RazorView)result.View).ViewPath;
var layoutPath = ((RazorView) result.View).LayoutPath;
var view = new RazorView(ControllerContext, viewPath, layoutPath, true, null);
var viewCxt = new ViewContext(
ControllerContext,
view,
viewResult.ViewData,
viewResult.TempData, writer);
viewCxt.View.Render(viewCxt, writer);