我正在尝试为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文件本身。答案 0 :(得分:1)
答案是我必须为ASPX文件本身添加名称空间而不仅仅是底层代码文件。我忘了在页面声明中添加Class="TestControl.TestBox"
。