我有一個子文件夾,它具有一個aspx頁面和一個web.config文件,該文件覆蓋根目錄中web.config中的連接字符串。問題是,如果aspx頁面包含任何用戶控件,則用戶控件仍會從根目錄中的web.config中獲取連接字符串。無論如何強迫他們使用父aspx頁面使用的web.config?Web.config覆蓋不影響用戶控件
1
A
回答
2
我想你的用戶控件位於根目錄或沒有web.config的目錄中,因此它們使用根web.config。問題的原因是這樣的。
對於解決方案,我認爲在您的頁面中,您可以通過屬性爲其用戶控件設置連接字符串。或者,您可以讓用戶控制通過方法訪問頁面上的連接字符串。
0
如果它只是一個連接字符串(或者只是幾個設置變量),您可以將它們從父頁面傳遞給您的控件。
在包含麻煩的用戶控制你的頁面,你可以參考控制在你的aspx頁面,然後在初始化你的aspx頁面和控件,您可以覆蓋在連接字符串中它的構造器/自定義函數
在你的aspx頁面
<%Reference Src="path/to/your/control"%>
代碼側(CSS)
// - check if this works first
ASP.class_name_of_control_ascx(override_connection_string);
// Other wise - created place holder on page for control/find control on page
UserControl ctrl = new ASP.class_name_of_control_ascx();
PlaceHolderOnPage.Controls.Add(ctrl);
((ASP.class_name_of_control_ascx)ctrl).RunMethod(override_connection string);
,然後選擇控制方,只要設置你的默認構造函數和一個覆蓋構造函數來接受來自父aspx頁面的連接字符串。
在您的控制中,您將使用此覆蓋連接字符串。
1
我猜你的用戶控制在用戶控件的實現直接從web.config讀取的地方。然而,這將信息綁定到與用戶控件確實有關的用戶控件。 (信息是如何獲取連接字符串,而不是連接字符串本身)。該綁定違反了單一的resposibility原則,並(間接)是什麼導致你的問題。而不是讀取用戶控件內部的連接。將連接字符串公開爲屬性,並在實例化控件時讓頁面對其進行設置。
讓它進一步進入行爲良好的設計。你的用戶控件應該甚至不應該知道連接字符串,而應該有一個工作者類,或者甚至更好,你可能想要重寫爲顯示目的設置控件,用於檢索數據的工作人員以及將檢索到的數據綁定到你的機制控制。
相關問題
- 1. Silverlight用戶控件覆蓋
- 2. 用web.config覆蓋machine.config
- 3. 覆蓋Web.config
- 4. 如何使用web.other.config覆蓋文件web.config?
- 5. 創建Silverlight覆蓋用戶控件
- 6. 覆蓋用戶控件的方法
- 7. 用戶控制事件和覆蓋
- 8. C#,用戶控件,事件 - 用戶控件的控件事件覆蓋?
- 9. 屬性覆蓋沒有任何影響
- 10. ZXing覆蓋會影響掃描區域
- 11. 覆蓋CSS樣式的性能影響
- 12. 創建覆蓋DIV wthout影響頂格
- 13. 箱影不覆蓋div
- 14. asp.net MVC多租戶:有沒有辦法來覆蓋/影響User.Identity.IsAuthenticated?
- 15. 全局web.config覆蓋站點web.config?
- 16. 防止根web.config被sub.over覆蓋web.config
- 17. ToolStrip覆蓋控件
- 18. 覆蓋WPF控件
- 19. 覆蓋WPF控件
- 20. 防止Web.config文件被覆蓋
- 21. 覆蓋web.config的設置
- 22. 通過web.config覆蓋WebClientProtocol.Timeout
- 23. 覆蓋帳戶控制器
- 24. 用戶控件,自定義控件,繼承和覆蓋
- 25. 清除節的Web.config影響?
- 26. Web.config和.htaccess都不影響網站
- 27. web.config內容不會影響SmtpClient()配置
- 28. 覆蓋用戶
- 29. 影子vs覆蓋?
- 30. CSS:陰影覆蓋