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

时间:2012-06-07 19:30:41

标签: c# asp.net custom-controls ascx

我正在尝试为ASP.NET构建自定义控件 我首先在VS2010中创建一个Web应用程序并创建一个新的.ascx页面。该页面被称为“TestBox”,它只是一个TextBox控件,其中“This is a test”作为文本。

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

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

然后我将其添加到页面本身:

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

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

我错过了什么吗?

TestControl的代码:

<%@ 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>

我没有以任何方式触及Designer代码或.cs代码。

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

1 个答案:

答案 0 :(得分:1)

答案是我必须为ASPX文件本身添加名称空间而不仅仅是底层代码文件。我忘了在页面声明中添加Class="TestControl.TestBox"