ASP.NET C# 中的自定義控制項
我創建了一個簡單的自定義控制項,它只繼承自
Literal控制項,還沒有任何擴展,程式碼是空的。命名空間:自定義控制項
類名:字面量:System.Web.UI.WebControls.Literal
接下來我要做的是在
aspx頁面中註冊這個控制項,如下所示:<%@ Register TagPrefix="web" Namespace="CustomControls" %>(我在幾個教程中讀到這是註冊它的方法之一,除了 web.config 等。)
畢竟,對我來說沒有智能,更糟糕的是 - 當我嘗試執行包含控制項的頁面時,我得到一個解析錯誤“未知的伺服器標籤:web”。
如果需要此資訊,我使用了“創建新項目”而不是新網站。
我的問題可能是什麼?
提前致謝。
這是我如何做到的,一步一步從無到有。第一種方法使用第二個項目/程序集。對於 App_code 版本,向下滾動。
Web應用項目方法
- 創建一個新的 ASP.Net Web 應用程序。記下名字,我的叫 WebApplication2。如果您已經有一個現有的 Web 應用程序(很可能),請點兩下項目的屬性部分並檢查“程序集名稱”屬性,並記下它。
- 在名為 Literal.cs 的 Web 應用程序中創建一個新類
- 為類定義輸入類似於以下的程式碼:
namespace CustomControls { public class Literal : System.Web.UI.WebControls.Literal { } }
- 將以下註冊標記添加到您的 aspx 頁面頂部
<%@ 註冊程序集=“WebApplication2” namespace=“CustomControls” tagprefix=“web” %>
如果您的程序集名稱不同,請在此處更改。我注意到當我在 VB.Net 中執行此操作時,命名空間是 WebApplication1.CustomControls 而不是像在 C# 中那樣只是 CustomControls,有點奇怪。
- 將新控制項添加到您的頁面:
<web:Literal ID=“Literal1” runat=“server” Text=“test” />
分離項目法
- 創建一個新的空網站 (ASP.Net)。
- 將名為 CustomControls 的新 ASP.Net 伺服器控制項庫添加到解決方案中。
- 向名為 Literal 的新項目添加一個新類(我使用的是 C#,因此我的文件名為 Literal.cs)。下面是我的超級基本程式碼,我認為應該與問題中描述的程式碼相匹配。
namespace CustomControls { public class Literal : System.Web.UI.WebControls.Literal { } }
- 將 CustomControls 項目的引用添加到您的網站。
- 將程序集註冊添加到您的 aspx 頁面頂部:
<%@ 註冊程序集=“CustomControls” 命名空間=“CustomControls” tagprefix=“web” %> 6. 將控制項的新實例添加到您的頁面:
<web:Literal ID=“Literal1” runat=“server” Text=“test” />
在 App_Code 方法中
- 創建一個新的空網站 (ASP.Net)。
- 向 App_Code 文件夾 Literal2 添加一個新類(我使用的是 C#,因此我的文件名為 Literal2.cs)。下面是我的超級基本程式碼,我認為應該與問題中描述的程式碼相匹配。我將其稱為 2,以便您可以將其與上述方法結合使用而不會出現編譯錯誤
namespace CustomControls { public class Literal2 : System.Web.UI.WebControls.Literal { } }
- 通過將以下行添加到頂部,在您的 aspx 頁面中註冊 app_code 的程序集/命名空間
<%@ Register Namespace=“CustomControls” Assembly="__code" tagprefix=“web” %> 4. 將新控制項的實例添加到您的頁面:
<web:Literal2 ID=“literal2” runat=“server” Text=“test2” />
我使用Visual Studio對此進行了測試,對我來說一切正常。