簡體   English   中英

為什么ASP.Net無法識別我的用戶控件?

[英]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”。 在它前面。 那是正常的嗎?

看來這是一個已知問題。 我不得不清除臨時文件並重建項目,以使錯誤消息消失“一段時間”。

無法將類型'X'的對象強制轉換為類型'X'-ASP.NET

最終的解決方案似乎是接口。 使用所需的方法構建接口或抽象類,使用戶控件實現該接口,然后使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM