构建自定义基础模板剃刀引擎
Building Custom Base Templates razor engine
我正在使用 Razor 引擎来解析 .cshtml 文件。我正在尝试将基本模板文件更改为 System.Web.WebPages.WebPageBase。我发现剃刀引擎有这个东西,我可以在其中设置基本模板
config.BaseTemplateType = typeof(MyCustomTemplateBase<>);
问题是我无法直接将其设置为System.Web.WebPages.WebPageBase。所以我必须制作自己的自定义模板基础,就像这样
public abstract class MyCustomTemplateBase<T> : WebPageRenderingBase
{
public override abstract HelperResult RenderPage(string path, params object[] data);
}
我只想要 RenderPage 功能,但是当我 运行 应用程序时,它给我这些错误
error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'CordovaBuild.MyCustomTemplateBase<dynamic>.RenderPage(string, params object[])'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.Layout.get'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.Layout.set'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.PageData.get'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.Page.get'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.ExecutePageHierarchy()'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageExecutingBase.Write(object)'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageExecutingBase.WriteLiteral
您可能想要扩展 RazorEngine TemplateBase<T>
类 而不是 WebPageRenderingBase
。
详情见https://antaris.github.io/RazorEngine/TemplateBasics.html#Extending-the-template-Syntax。
问题是 RazorEngine 需要 "its" 自己的接口而不依赖于 System.Web。
matthid,RazorEngine 贡献者。
我正在使用 Razor 引擎来解析 .cshtml 文件。我正在尝试将基本模板文件更改为 System.Web.WebPages.WebPageBase。我发现剃刀引擎有这个东西,我可以在其中设置基本模板
config.BaseTemplateType = typeof(MyCustomTemplateBase<>);
问题是我无法直接将其设置为System.Web.WebPages.WebPageBase。所以我必须制作自己的自定义模板基础,就像这样
public abstract class MyCustomTemplateBase<T> : WebPageRenderingBase
{
public override abstract HelperResult RenderPage(string path, params object[] data);
}
我只想要 RenderPage 功能,但是当我 运行 应用程序时,它给我这些错误
error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'CordovaBuild.MyCustomTemplateBase<dynamic>.RenderPage(string, params object[])'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.Layout.get'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.Layout.set'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.PageData.get'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.Page.get'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageRenderingBase.ExecutePageHierarchy()'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageExecutingBase.Write(object)'
- error: (25, 18) 'CompiledRazorTemplates.Dynamic.RazorEngine_e15164c444b34d6d84d05aef3c711cff' does not implement inherited abstract member 'System.Web.WebPages.WebPageExecutingBase.WriteLiteral
您可能想要扩展 RazorEngine TemplateBase<T>
类 而不是 WebPageRenderingBase
。
详情见https://antaris.github.io/RazorEngine/TemplateBasics.html#Extending-the-template-Syntax。
问题是 RazorEngine 需要 "its" 自己的接口而不依赖于 System.Web。
matthid,RazorEngine 贡献者。