我有一個ASP.NET 4網站(不是web應用程序)。從動態添加的用戶控件轉換並引用頁面時出錯
One one ASPX Page(Router.aspx)我根據請求的URL,在運行時動態地將ASCX用戶控件添加到佔位符。在用戶控件,我需要讓我用下面的代碼來引用頁面,從ASPX頁面檢索屬性:
Router myPage = (Router)Page;
在Visual Studio這條線配備了紅色的波浪線和錯誤「的類型或命名空間名稱'路由器'找不到「。奇怪的是,當我在Web服務器上訪問這個頁面時,其中一個用戶控件(Home.ascx)可以正常工作,但是另一個(Product.ascx)則沒有。當它不起作用時,我收到編譯錯誤「CS0246:無法找到類型或命名空間名稱'Router'(是否缺少using指令或程序集引用?)」,上面的行顯示爲錯誤行。
即使我將所有代碼從Home.ascx/.cs複製到Product.ascx/.cs,Product.ascx仍然不起作用。
我很難過!
我猜測我引用ASPX頁面的方式不對,並且VS錯誤試圖告訴我一些東西。
注: 1)這是一個網站不是一個Web應用程序 2)在使用
有了適當的架構,您的控件不需要知道頁面。該頁面應該連接到控件所公開的事件以交換信息。 – mason
^總是必須有其中一條評論... – johna
我不確定你的意思。如果你一直在設計遇到這些問題的奇怪架構,也許你應該把它當作一個標誌,並且重新考慮如何把它們放在一起。在這種情況下,控件應該是可以放置在頁面上的可重用組件,它們的行爲不應受到它所在頁面的影響。因此,暴露界面的方式是頁面可以利用的。 – mason