2012-07-17 54 views
2

我想繼承Razor WebViewPage,因爲我想爲每個視圖執行一些通用代碼,並且在特定的模型驅動視圖中執行一些代碼。在兩個繼承的Razor視圖之間共享

我有兩個繼承的類

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

而且

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

有一些代碼,我想無論使用的視圖的類型 - 無論是強類型與否,以及一些具體的強類型視圖。我不想複製它 - 實質上我希望強類型繼承視圖能夠訪問我在泛型繼承視圖中編寫的所有代碼。

我想知道如果我錯過了一些基本概念......所以任何指針都會很棒。

謝謝大家

回答

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> 
{ 
} 
在我的意見

/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> 
+0

這是什麼樣的我最好要反轉的......在我的打字類從無類型繼承。問題是我的類型類只有一些頁面使用了許多特殊視圖特定的代碼。 – jeremy 2012-07-17 21:12:43