web-dev-qa-db-ja.com

要素<element>は、ユーザーコントロールを使用する場合のVisual Studioの既知の要素警告ではありません

この警告が表示されていたVS2008プロジェクトがあり、解決策がどこにも見つかりませんでした。

ユーザーコントロールを使用すると、要素はvs2008で既知の要素の警告ではありません

どうすれば修正できますか?

21
chris

これは、古典的なソリューションの再構築と「Visual Studioを閉じて再度開く」問題のように聞こえます。

Visual Studio 2005/2008で「検証():要素xxxxはサポートされていません」という警告を解決する で解決した同様の問題に関連している可能性もあります。

26
Jason Snelders

これは、追加しようとしている要素が、本来含まれてはならない別の要素のタグ内にある場合にも発生する可能性があります。

例えば:

<asp:Button ID="button" runat="server" >
    <asp:Repeater ID="repeater" runat="server"></asp:Repeater>
</asp:Button>

または、私の場合、<asp:Repeater><asp:UpdatePanel><ContentTemplate>

<asp:UpdatePanel ID="upPanel" runat="server">
    <ContentTemplate>
        <asp:Repeater ID="rep" runat="server">

        </asp:Repeater>
    </ContentTemplate>
</asp:UpdatePanel>
12
Jerreck

どうやらこれは、.ascxファイルの名前空間名がascx.cs(分離コード)ファイルの名前空間と一致しない場合にも発生する可能性があります。確認すべきもう1つの問題。

4
Glade Mellor

OPから:

これに対する明白な解決策は、TagNameがコントロールクラスの名前であることを確認することです。

したがって、私の例では、次のように警告が表示されました。

<%@ Register Src="~/path/to/Control.ascx" TagName="tagName" TagPrefix="tagprefix" %>

<tagprefix:tagName runat="server" id="controlID" />

ただし、次のように変更します。

<%@ Register Src="~/path/to/Control.ascx" TagName="Control" TagPrefix="tagprefix" %>

<tagprefix:Control runat="server" id="controlID" />

それを修正します。

2
TylerH

.ascxファイルのビルドアクションを「コンテンツ」から「コンパイル」に変更した後でissurが解決されたことがわかり、後でそれを変更し直しました。

0
Manfred Wippel

Asp.netのContentPlaceHolderID = "MainContent"を使用している可能性があるので、コードを新しいプレースホルダーに配置してください。

0
user6667793