11

答えを探し始めて、それがとても単純であることに気付くまで、これは単純な問題だと思っていました。私だけがそれを持っています。

私のユーザーコントロールは何も表示していません。私は何が間違っているのですか?(これを私の人生にする以外に...)

コントロール:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ctrl.ascx.cs" Inherits="proj.UserControls.ctrl" %>

asdjkldasfjasdfljdfasjklasdfjkl

使用する:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="page.aspx.cs" Inherits="proj.Admin.page" %>

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
        <cc1:ctrl ID="test" runat="server" />
</asp:Content>
4

5 に答える 5

19

変化する:-

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>

<%@ Register TagPrefix="cc1" TagName="ctrl" Src="/path/to/ctrl.ascx" %>

TagNameコントロール宣言のコロンに続くテキストを表す、がありません。Srcまた、ソースファイル(属性)の場所をエンジンに指示していません。/path/toルートからコントロールへのパスを表すように変更します。

于 2012-11-27T16:37:03.367 に答える
3

カスタムコントロールを作成した場合は、カスタムコントロールのdllの参照を追加する必要があります(Visual StudioのToolBoxからアイテムを選択してください)。次に、ページで次のタグを使用します。

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>

ユーザーコントロールを作成した場合は、ページに次の行を追加します。

<%@ Register src="~/UserControls/ctrl.ascx" TagName="ctrl" tagprefix="cc1" %>

于 2012-11-27T16:51:18.030 に答える
2

それ以外の

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>

使用する

 <%@ Register  src="~/UserControls/ctrl.ascx"  TagName="ctrl" tagprefix="cc1" %>
于 2012-11-27T16:36:48.873 に答える
0

コントロールを含むパネルまたはdivにvisible="false"を設定していないことを確認してください。

それは私に良い時間を節約したでしょう。

于 2016-06-13T16:29:53.777 に答える
0

すでに多くのユーザーコントロールが含まれている既存のプロジェクトに新しいユーザーコントロールを追加する必要があり、なぜ私のものがレンダリングされないのか疑問に思いました。Web.config次のように、構成system.webページでこれを指定することもできます。

<controls>
    <add tagPrefix="cc1" tagName="ctrl" src="~/UserControls/ctrl.ascx" />

...プロジェクト全体のコントロールを登録するため、すべてのページでこれを指定する必要はありません。頻繁に再利用されるコントロールに役立ちます。

于 2018-06-06T12:23:08.933 に答える