2

VS2010 で Web アプリケーションを作成し、新しい .ascx ページを作成することから始めた ASP.NET のカスタム コントロールを構築しようとしています。このページは "TestBox" と呼ばれ、テキストとして "This is a test" を含む単一の TextBox コントロールです。

プロジェクトをビルドし、コントロールを移動できることを確認するために、DLL を別の Web サイトに含めました。ここで見つけたチュートリアルに基づいて、次のコード行をページの上部に追加しました。

<%@ 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 に答える