[英]Why doesn't ASP.Net recognize my user control?
在我當前的項目(ASP.Net 2.0)中,我有很多Web用戶控件,其中包括“ Office.ascx”。
使用以下行將Office.ascx加載到另一個控件中:
guide_controls_display_Office o = (guide_controls_display_Office)LoadControl("Office.ascx");
我將其加載到的控件已使用此行注冊了Office.ascx:
<%@ Register TagName="office" TagPrefix="uc" Src="Office.ascx" %>
但是在啟動網頁時出現此錯誤:
Unable to cast object of type 'ASP.guide_controls_display_office_ascx' to type 'guide_controls_display_Office'.
為什么會收到此消息? 我可以看到第一種類型具有“ ASP”。 在它前面。 那是正常的嗎?
看來這是一個已知問題。 我不得不清除臨時文件並重建項目,以使錯誤消息消失“一段時間”。
最終的解決方案似乎是接口。 使用所需的方法構建接口或抽象類,使用戶控件實現該接口,然后使用interface / abstract類加載該控件:
Control c = LoadControl("~/guide/controls/display/Office.ascx");
AOffice io = c as AOffice;
io.ID = "office_" + i.ToString();
offices.Controls.Add(io);
io.DisplayEdit = displayedit;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.