2010-06-09 43 views
0

我的母版和類具有公共變量「MessagePlaceholder」訪問此屬性一樣,設置它是從價值的getMessage字符串();ASP.NET母版公共變量錯誤

((HttpContext.Current.Handler as System.Web.UI.Page).Master as MasterPage).MessagePlaceholder = getMessage(); 

這使我像這樣的

錯誤3「System.Web.UI.MasterPage」的錯誤不包含關於「MessagePlaceholder」和沒有擴展方法的定義「MessagePlaceholder」接受第一個參數類型「System.Web.UI.MasterPage」的可以找到(是否缺少using指令或程序集引用?)

我應該怎麼辦?

+0

是'MasterPage'特定母版頁的類型名稱? – 2010-06-09 09:56:55

+0

@格拉漢克拉克,我沒有特定類型的母版頁,全部在頁面上完成(沒有代碼後面) – eugeneK 2010-06-09 11:48:35

+0

不,我是說你顯然有一個母版頁文件 - 它叫什麼? – 2010-06-09 11:50:00

回答

1

您已在主頁中添加了變量MessagePlaceHolder。這意味着您已經擴展了標準主頁面的功能。

您必須將主屬性轉換爲您的主頁面類型。

((MyMasterClass)((Page)HttpContext.Current.Handler).Master).MessagePlaceHolder = getMessage(); 

或在VB.Net

DirectCast(DirectCast(HttpContext.Current.Handler, Page).Master, MyMasterClass).MessagePlaceHolder = getMessage() 
+0

這是什麼類型?我沒有定義一個名爲MyMasterClass的類或其他任何東西 – eugeneK 2010-06-09 09:53:27

+0

你的母版頁的類型是什麼?查看繼承屬性的master指令。 F.e .: <%@萬事達語言= 「VB」 AutoEventWireup = 「假」 代碼隱藏= 「ERP.Master.vb」 繼承= 「ERP.ERPMaster」 %> 在這個例子中ERP.ERPMaster是我的母版的類型。 – 2010-06-09 10:16:05

+0

我沒有背後的代碼。有沒有什麼辦法可以在不重寫MasterPage的情況下使用代碼? – eugeneK 2010-06-09 10:22:31