将Razor partials渲染为html

时间:2017-09-19 21:26:21

标签: c# asp.net-mvc unit-testing razor view

正如文章Unit test with Razor Generator所述,我们可以对视图进行单元测试(在某种程度上)。问题在于它说它忽略了部分代码,这些部分是真正自包含的代码,有利于单元测试。

如何在.cshtml Html.RenderPartial(filePath, model)文件中使用html作为html进行部分渲染?所以我可以模拟模型并断言生成的html。

1 个答案:

答案 0 :(得分:1)

您可以使用独立的RazorViewEngine found here.完成此操作。这将允许您传入ViewModel并编译部分,并吐出一个html字符串。

然后,您可以使用另一个答案found here*中的代码来编译部分代码。

*

public class RazorEngineRender {
    public static string RenderPartialViewToString<T>(string templatePath, string viewName, T model) {            
        string text = System.IO.File.ReadAllText(Path.Combine(templatePath, viewName));
        string renderedText = Razor.Parse(text, model);
        return renderedText;
}

}