2010-07-12 82 views
3

我正在爲一個asp.net應用程序創建一個新的基類,以便從MVC創建我自己的強類型視圖版本。應用程序本身不是一個MVC應用程序。以下是我的自定義課程的基礎。無法加載類型 - 自定義ViewPage類基類

public class BasePage<T> : Page where T : IPageInfo 
{ 
    public BasePage() 
    { 
     this.MyPageInfo = IoC.GetInstance<IPageInfo>(); //pseudo-code to populate a property. 
    } 
} 

當我添加一個新的Web窗體頁,我的申請,我改變了「繼承」 Page指令的屬性,使其指向這個BasePage類而不是典型的代碼隱藏類以同樣的方式爲ASP。 Net MVC強烈地輸入了視圖。以下是頁面指令的一個例子。

<%@ Page language="C#" inherits="MyApp.Core.BasePage<MyApp.Content.Search>"%> 

在上面的指令中,MyApp.Content.Search類實現了BasePage需要滿足泛型約束的IPageInfo接口。

一切編譯正常,但當我瀏覽到頁面時,我得到錯誤Could Not Load Type。我打開了MVC 2程序集以查看ViewPage是如何完成的,它看起來是相同的基本結構。我環顧網絡,MVC的這個錯誤的一般建議是刪除並讀取對MVC的引用。如果我使用MVC,這將會很棒;但是我的BasePage類和我的搜索類都在同一個程序集中。我一直在使用完全限定名(如圖所示)。

任何人有什麼想法,我可以嘗試讓這個工作?

感謝

回答

4

它映射到<%@ Page language="C#" inherits="MyApp.Core.BasePage<MyApp.Content.Search>"%>的MyApp.Core.BasePage魔法與ASP.NET MVC介紹。 您可以檢查System.Web.Mvc.ViewTypeParserFilter執行:

<pages 
    validateRequest="false" 
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <controls> 
     <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
    </controls> 
</pages> 
+0

的PageParserFilter讓我在正確的方向前進。感謝您的信息。 – JamesEggers 2010-07-14 13:44:12

相關問題