Элемент <element> не является известным элементом предупреждения в Visual Studio при использовании пользовательских элементов управления
У меня был проект VS2008, который показывал это предупреждение, и я нигде не мог найти решение.
Элемент не является известным элементом предупреждения в vs2008 при использовании пользовательских элементов управления
Как я могу это исправить?
Ответы
Ответ 1
Это звучит как классическое повторное построение вашего решения и "закрытие и повторное открытие Visual Studio".
Возможно, это также может быть связано с аналогичной проблемой, с которой я ответил в "Разрешение" (Validation): Элемент "xxxx не поддерживается" . предупреждение в Visual Studio 2005/2008.
Ответ 2
Это также может произойти, если элемент, который вы пытаетесь добавить, находится в тегах другого элемента, в котором он не должен находиться.
Пример:
<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>
Ответ 3
По-видимому, это также может произойти, если имя пространства имен в файле .ascx не совпадает с пространством имен в файле ascx.cs(codebehind). Еще один вопрос для проверки.
Ответ 4
Из ОП:
Очевидное решение этого заключается в том, чтобы убедиться, что 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" />
fixes it.
Ответ 5
Проверьте, что вы можете быть на ContentPlaceHolderID = "MainContent" на Asp.net, поэтому поместите код на новый placeholder
Ответ 6
Я обнаружил, что проблема была решена, когда я изменил действие Build с "content" на "compile" для файла .ascx и затем вернул его обратно.
Ответ 7
Это может произойти, если что-то не хватает в вашем web.config тоже. Я просто столкнулся с этой ошибкой при копировании настраиваемого элемента управления из одного решения в другое, и страница все еще не смогла найти элемент. Если ни одно из указанных выше не устраняет проблему, проверьте этот раздел web.config и убедитесь, что ваш элемент управления включен:
<controls>
<add tagPrefix="fu" namespace="Fubar.Base" assembly="Fubar" />
...
</controls>
После добавления этого, а затем закрытия/повторного открытия решения проблема исчезла.