2011-10-16 36 views

回答

1

也許試着將屬性myControl類別轉換爲MyPage類別?

字符串值=((我的頁面)this.Page).propX

如果你想從其他類訪問此屬性(如myControl),財產propX訪問修飾符應設置到internalpublic

我假設,您已將myControl對象放在MyPage頁面上。

+0

就是這樣!謝謝。 – user259286

1

您可以更改字符串的訪問修飾符。也許把它設置爲內部。

0

你確定你是從母版頁繼承嗎?添加MasterPage指令並不意味着它從它繼承。通常一個aspx頁面應該直接或間接從System.Web.UI.Page繼承。

主頁面不是「繼承的」,這意味着受保護的成員不能從頁面類(或控件類)訪問。你最好的選擇是使財產公開或內部。

+0

對不起,我應該更清楚。 masterpage只是一個我創建的繼承System.Web.UI.Page的類,並且在masterpage中執行我的init工作,然後設置MyPage:masterpage。我試過你的內部建議,它不起作用。 – user259286

+0

啊好的。您永遠無法從UserControl訪問受保護的屬性。受保護的屬性只能從直接從它們繼承的類訪問。內部屬性只能由同一個程序集/項目中的其他類訪問。如果您的UserControl和MasterPage在不同的程序集/項目中,那麼您將它設置爲公共的唯一選項。如果它們在同一個程序集中,並且內部不起作用,那麼肯定還有其他一些問題 - 也許完整的代碼示例會有所幫助。 – Martyn