2

我正在使用 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) 上定义的公共属性,尤其_LayoutModel无法通过 IntelliSense 访问。

在作品中复制这些属性EmailTemplateBase<T>

public new T Model
{
    get { return base.Model; }
    set { base.Model = value; }
}

但是,我不应该这样做。肯定有更好的方法吗?为什么 Visual Studio 的 Razor 代码编辑器看不到我的基类的属性?

4

0 回答 0