2

我想继承 Razor WebViewPage 因为有一些我想为每个视图执行的通用代码,还有一些在特定的模型驱动视图中。

我有 2 个继承类

public abstract class TemplateEngine : WebViewPage  {
 ///...code
}

public abstract class TemplateEngine<TModel> : WebViewPage<TModel> {
    ///...code
}

无论视图的类型如何,我都想使用一些代码——无论是否是强类型,还有一些特定于强类型视图。我不想复制它——本质上我希望强类型继承视图能够访问我在通用继承视图中编写的所有代码。

我想知道我是否缺少一些基本概念......所以任何指针都会很棒。

谢谢你们

4

1 回答 1

1

我就是这样做的。我的无类型类继承自我的类型为动态的类。我没有在无类型类中定义任何新内容,因为它继承了我想要的一切。不确定这是最好的

abstract public class CxWebView<T> : WebViewPage<T>
{
    /* all of the methods & properties I want available in every view */
}

abstract public class CxWebView : CxWebView<dynamic>
{
}

在我的views/web.config 中,我将基本类型设置为CxWebView

<pages pageBaseType="CxLib.Web.CxWebView">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    <add namespace="System.Data" />
    <add namespace="System.Data.Entity" />
  </namespaces>
</pages>
于 2012-07-17T20:14:46.887 回答