2

すべてのビューで実行したい共通コードと、特定のモデル駆動型ビューで実行したいコードがあるため、Razor WebViewPage を継承したいと思います。

私は2つの継承クラスを持っています

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

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

ビューのタイプに関係なく使用したいコードがいくつかあります。厳密に型指定されているかどうかに関係なく、厳密に型指定されたビューに固有のものもあります。私はそれを複製したくありません-本質的に、厳密に型指定された継承ビューが、汎用継承ビューで記述したすべてのコードにアクセスできるようにしたいのです。

基本的な概念が欠けているのではないかと思っています...だから、どんなポインタでも素晴らしいでしょう。

皆さん、ありがとうございました

4

1 に答える 1

1

これが私のやり方です。型指定されていないクラスは、型が dynamic の型付きクラスから継承しています。型なしクラスは必要なものをすべて継承するため、新しいものは定義しません。それが最高かどうかわからない

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 に答える