2

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

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

<%@ 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 文件本身声明一个命名空间。

4

1 回答 1

1

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

于 2012-06-13T15:20:06.747 回答