我正在使用 RazorEngine 3(Antaris fork at https://github.com/Antaris/RazorEngine)从 Razor 视图生成电子邮件,并有一个扩展TemplateBase<T>
名为EmailTemplateBase<T>
.
Views目录中 的 web.config具有正确设置的基本类型:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="EmailTemplateBase`1[[EmailModelBase]]">
...
我还可以确认,在重新启动 Visual Studio (2012) 后,定义的属性EmailTemplateBase<T>
可以通过 IntelliSense 访问。问题是在其基类 (TemplateBase) 上定义的公共属性,尤其_Layout
是Model
无法通过 IntelliSense 访问。
在作品中复制这些属性EmailTemplateBase<T>
:
public new T Model
{
get { return base.Model; }
set { base.Model = value; }
}
但是,我不应该这样做。肯定有更好的方法吗?为什么 Visual Studio 的 Razor 代码编辑器看不到我的基类的属性?