我想創建我的第一個從面板派生的ASP.net服務器控件。出於某種原因,即使應用程序能夠識別我的控件的類和名稱空間,我也無法使.aspx頁面識別我的服務器標記。如何讓ASP.NET識別我的自定義服務器控件?
下面是我使用的步驟:
1)我創造,我已經放在我的site_code目錄類CollapsablePanel。我正在使用Web App而不是Web站點,因此App_Code對我來說真的不可用。
Namespace webstation.WebControls
Public Class CollapsablePanel
Inherits System.Web.UI.WebControls.Panel
End Class
End Namespace
2)在.aspx文件我已經添加<%@註冊的TagPrefix = 「webstation」 命名空間= 「MyApplication.webstation.WebControls」 %>
我已經建立了項目,但我自定義標籤前綴不會出現。如果我只是繼續並輸入編輯器不會引發錯誤,但是當我發佈它並嘗試訪問它時,頁面會發生錯誤。如果我嘗試從代碼隱藏(Imports MyApplication.webstation.WebControls)訪問類,則自定義控件將顯示在intellisense中,所以我知道Visual Studio正在某種程度上讀取類信息。
我在這裏做錯了什麼?任何想法都不勝感激。
邁克
我不知道我應該有標記名,我想它來提供,我將在命名空間的所有類,而不必單獨註冊每一個。 另外,ASP.net上的教程視頻不使用TagName: http://www.asp.net/learn/videos/video-297.aspx – mclark1129 2009-10-14 17:34:21
如果您想註冊* all *的類在給定的命名空間中,我相信你需要在@Register指令中提供程序集屬性。所以像Assembly =「MyApplication.webstation.WebControls」,假設WebControls是一個生成DLL作爲輸出的項目。 – 2009-10-14 17:51:34
你是對的MIke,你不需要指定標記名,但你需要指定程序集。我剛剛嘗試過,它在我爲我的dll添加程序集屬性之後起作用 – 2009-10-14 17:58:29