如何使用自定义文件夹中的片段解析Razor模板?
我在视图的同一子文件夹中有两个cshtml文件。其中一个模板包含另一个模板。我试图做到以下几点: 主模板:如何使用自定义文件夹中的片段解析Razor模板?,razor,razorengine,Razor,Razorengine,我在视图的同一子文件夹中有两个cshtml文件。其中一个模板包含另一个模板。我试图做到以下几点: 主模板: <html> <head></head> <body> @Html.Partial("~/Views/Pdfs/Header"); </body> </html> @Html.Partial(“~/Views/Pdfs/Header”); 我得到的错误是 无法编译模板。当前上下文中不存在名称“
<html>
<head></head>
<body>
@Html.Partial("~/Views/Pdfs/Header");
</body>
</html>
@Html.Partial(“~/Views/Pdfs/Header”);
我得到的错误是
无法编译模板。当前上下文中不存在名称“Html”
我还应该做什么?正如Erik所评论的,RazorEngine中没有Html(请参见链接的答案),但是您可以使用
@Include(“mytemplate”)
如果出于某种原因希望与@Html.Partial()
语法兼容,可以扩展RazorEngine语法,如
基本上,您要做的是提供您自己的类继承自
TemplateBase
(确切地说是ITemplate
),然后通过配置或@Inherit MyBaseClass
语法进行设置。在这种情况下,您可以从Html helper类中的Partial
方法调用Include
方法。对此很长一段时间感到恼火。编写了所有基础结构类,以使其能够像您在MVC中所期望的那样工作,而不必承担所有MVC负担:
var razor = RazorHelper.O;
var html = razor.RenderFromMvc(@"Views\RazorEngine\TestEmail.cshtml", vm);
什么是
O
的可能重复<代码>虚拟机是视图模型吗?是的,虚拟机是视图模型。O是单身汉。