2010-02-11 71 views
1

我從一個普通ASP.NET C#頁面訪問母版的屬性通過執行以下操作:如何從基類訪問母版的財物或者其他功能文件

((SecondMasterPage)(Page.Master)).speciallink = true; 
((SecondMasterPage)(Page.Master)).specialspan = false; 

這工作在精細頁面的代碼隱藏,但是當我嘗試將其移動到一個函數在我的基礎類文件是這樣的:

public class MyBaseClass : System.Web.UI.Page 
{ 
public void portalFuncs() 
{ 
    ((SecondMasterPage)(Page.Master)).speciallink = true; 
    ((SecondMasterPage)(Page.Master)).specialspan = false; 
} 
} 

...我收到以下錯誤信息:

編譯器錯誤信息:CS0246:該無法找到類型或名稱空間名稱'SecondMasterPage'(您是否缺少使用指令或程序集引用?)

我的基類文件位於我的App_Code目錄中,並且其中的其他函數可以正常工作。爲什麼這個功能不起作用?另外,如果像這個特定的函數不能在我的基類文件中工作,我可以在哪裏放置它,以便可以從任何頁面調用它?

回答

0

除非我遺漏了一些東西,否則您應該能夠進入SecondMasterPage文件的代碼隱藏,並檢查它的名稱空間。也許這個命名空間是不正確的或者與你想要的不同。

在您的基類中,使用using my.masterpage.namespace;語句使其工作。

+0

這似乎是一個奇怪的方式來做到這一點(或至少是我從未使用過的方式),但我嘗試使用SecondMasterPage.masterpage.namespace添加 ; 這給了我以下錯誤: 編譯器錯誤消息:CS1041標識符預期,'命名空間'是一個關鍵字。 – itsatrp 2010-02-11 01:48:15

+0

不,不,這是一個例子。使用您的母版頁類中的實際名稱空間,而不是字面上的「SecondMasterPage.masterpage.namespace」。 – womp 2010-02-11 01:52:24

+0

我建立這個網站的方式,我沒有在主頁代碼後面聲明的名稱空間。我只是看起來像這樣的一個類: 公共部分類SecondMasterPage:MyBaseClass {.....} – itsatrp 2010-02-11 02:06:43