2009-01-29 17 views
14

Tôi đã có dự án VS2008 đang hiển thị cảnh báo này và tôi không thể tìm thấy giải pháp ở đâu cả.Giải pháp cho: Phần tử <element> không phải là một cảnh báo phần tử đã biết trong vs2008 khi sử dụng điều khiển Người dùng

Trong mọi trường hợp, giải pháp rõ ràng cho điều này là để đảm bảo rằng TagName là tên của lớp điều khiển.

Vì vậy, ví dụ của tôi, sau đây hiển thị cảnh báo:

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

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

Nhưng thay đổi nó để:

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

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

sửa chữa nó.

YMMV.

Trả lời

24

Điều này nghe có vẻ như một công cụ tái tạo lại giải pháp cổ điển của bạn và "Visual Studio" gần gũi và mở lại.

Có thể nó cũng có thể liên quan đến vấn đề tương tự mà tôi đã trả lời ở số Resolving "Validation(): Element ‘xxxx’ is not supported" warning in Visual Studio 2005/2008.

+1

Câu trả lời này là những gì đã giải quyết được vấn đề của tôi trong dự án C# .NET trình bày "yếu tố không phải là yếu tố được biết" cảnh báo trên thẻ asp: content – Joey

3

Rõ ràng điều này cũng có thể xảy ra nếu tên Không gian tên trong tệp .ascx không khớp với không gian tên trong tệp ascx.cs (codebehind). Chỉ cần thêm một vấn đề nữa để kiểm tra.

9

Điều này cũng có thể xảy ra nếu phần tử bạn đang cố gắng thêm nằm trong các thẻ của phần tử khác không được nằm trong đó.

Ví dụ:

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

Hoặc trong trường hợp của tôi, đặt một <asp:Repeater> trong một <asp:UpdatePanel> và quên đặt nó trong <ContentTemplate>:

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

     </asp:Repeater> 
    </ContentTemplate> 
</asp:UpdatePanel> 
+1

Đây là vấn đề của tôi với danh sách nút radio của tôi – abiNerd

0

Kiểm tra bạn có thể đang ContentPlaceHolderID = "MainContent "trên Asp.net, vì vậy hãy đặt mã trên trình giữ chỗ mới

-1

Điều này có thể xảy ra nếu thiếu nội dung nào đó trong web.con của bạn con số quá. Tôi vừa gặp lỗi này trong khi sao chép một điều khiển tùy chỉnh từ một giải pháp này sang giải pháp khác và trang vẫn không thể tìm thấy phần tử. Nếu không có ở trên sửa chữa vấn đề, kiểm tra phần này của web.config và đảm bảo kiểm soát của bạn được bao gồm:

<controls> 
    <add tagPrefix="fu" namespace="Fubar.Base" assembly="Fubar" /> 
    ... 
</controls> 

Sau khi thêm này, và sau đó đóng/mở lại giải pháp, vấn đề đi đi.

Các vấn đề liên quan