C# ASP.NET 自定义控件未显示

本文关键字:显示 自定义控件 NET ASP | 更新日期: 2023-09-27 18:36:40

我正在尝试为 ASP.NET 构造一个自定义控件我首先在VS2010中创建了一个Web应用程序,并创建了一个新的.ascx页面。该页面称为"TestBox",它只是一个以"这是一个测试"作为文本的 TextBox 控件。

构建了该项目,然后将 DLL 包含在另一个网站中,以确保我能够移动控件。根据我在这里找到的教程,我在页面顶部添加了以下代码行:

<%@ Register TagPrefix="TestControl" Namespace="TestControl" Assembly="TestControl" %>

然后我把它添加到页面本身:

<TestControl:TestBox ID="TestBox1" runat="server" />

代码编译和页面加载而不会引发任何错误,但是当它加载时,它是完全空白的。通过引入故意的运行时错误,我确定 TextBox 肯定正在加载,但控件本身仍未显示。

我错过了什么吗?

测试控件的代码:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestBox.ascx.cs" Inherits="TestControl.TestBox" %>
<asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged">This is a test</asp:TextBox>

我没有以任何方式接触设计器代码或.cs代码。

编辑:想通了。我已经为.CS文件声明了一个命名空间,但没有为 .ASPX 文件本身。

C# ASP.NET 自定义控件未显示

答案是我必须向 ASPX 文件本身添加一个命名空间,而不仅仅是基础代码文件。我忘了在页面声明中添加Class="TestControl.TestBox"