2013-05-01 13 views
2

我想使用自定義派生頁面,而不是System.Web.UI.Page作爲我的網頁的基礎,但是Visual Studio 2012(ASP。 Net)拒絕承認新的基類。代碼看起來很健壯,只是VS無法識別新的基類。添加自定義基類爲我的asp.net頁面產生錯誤

  1. 我創建了一個文件夾斷稱爲項目的根的,App_Code文件
  2. 到該文件夾​​添加我叫SitePage.cs
  3. 進入SitePage.cs一個新的ASP.net類,這裏是內容

    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 
    using System.Web.UI; 
    
    public class SitePage : System.Web.UI.Page 
    { 
         protected override void OnPreInit(EventArgs e) 
         { 
           base.OnPreInit(e); 
         } 
    
    public SitePage() 
    { 
    } 
    

    }

  4. 在後面的代碼的網頁,說Default.aspx.cs,我試着更換

    公共部分類默認:頁

public partial class Default : SitePage 

的問題是,SitePage得到一個彎彎曲曲的紅線。 SitePage不出現在選擇的下拉列表中,不知道爲什麼,併產生錯誤,「類型或命名空間名稱'SitePage'找不到。」

我在Visual Studio中使用ASP.Net v4.0(非MVC)。我創建了一個全新的項目來測試/處理這個問題,所以沒有潛在的包袱。

想法?

+0

是SitePage與Default.aspx.cs位於同一名稱空間中? – Josh 2013-05-01 16:29:42

回答

2

在Default.aspx.cs知道它是什麼之前,您必須將其作爲參考(在解決方案資源管理器中查找「參考」選項)。

+0

感謝您的快速回復。沒有選項「引用」,但解決方案是將「構建操作」從「內容」更改爲「編譯」。謝謝你讓我過去。這個問題並不明顯。 – 2013-05-01 16:37:48

0

在創建自定義基類之後,但在之前您從頁面更改基類後,需要生成該項目。

所以,現在你要做的是:

  • 建立從System.Web.UI.Page
  • 確保Default繼承生成項目
  • 再塗SitePage作爲基類Default
+0

之後,我多次構建了該項目。誠然,我可能需要在清理完成後兩次構建項目,但眼前的問題,對我而言並不明顯,是我必須將構建操作從Visual Studio默認提供的「內容」更改爲「編譯」。我認爲所有的C#CS頁面都被編譯。我有很多類CS頁面,很好地編譯。我不追隨差異。想到任何人? – 2013-05-01 16:42:05

相關問題