关于C#:在两个继承的Razor视图之间共享公用

sharing common between two inherited Razor views

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

我有2个继承类

1
2
3
public abstract class TemplateEngine : WebViewPage  {
 ///...code
}

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

无论视图的类型如何,都有一些我想使用的代码-无论是强类型还是非强类型,以及某些特定于强类型视图的代码。 我不想重复它-本质上,我希望强类型继承视图可以访问我在通用继承视图中编写的所有代码。

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

谢谢你们


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

1
2
3
4
5
6
7
8
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

1
2
3
4
5
6
7
8
9
10
<pages pageBaseType="CxLib.Web.CxWebView">
  <namespaces>
   
   
   
   
   
   
  </namespaces>
</pages>