我有一组Web控件,这些控件位于网站引用的程序集中。我可以毫无问题地构建和运行所有内容,但是当我查看正在使用控件的aspx页面时,我在Tag Prefix下面得到一个绿色下划线。
<%@ Register Assembly="MyProject.UI.ControlLibrary" Namespace="MyProject.UI.ControlLibrary.Web" TagPrefix="ControlLibrary" %>
<asp:Content ID="MainContent" ContentPlaceHolderID="MainContent" Runat="Server">
<ControlLibrary:ListView ID="List" runat="server"/>
</asp:Content>
所以在这个例子中,我在ControlLibrary下面有一个绿色下划线,当我将鼠标悬停在它上面时,它表示无法识别的标签前缀或设备过滤器'ControlLibrary'
代码是在以前版本的Visual Studio中编写的,我还有另一个包含Web控件的程序集,它似乎工作正常。
关于可能导致问题的任何想法?
答案 0 :(得分:3)
尝试将引用更改为web.config
,如果有任何结果,请查看错误?以下是位置参考的根<asp:
标记添加示例。我喜欢这种方法,因为如果您使用图书馆的话,它会保持页面更清晰。移动库引用后查看是否获得相同的结果。
<system.web>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
更新 - 根据您的评论,尝试删除
中的所有内容 Drive:\Documents and Settings\[User]\ApplicationData\Microsoft\VisualStudio\9.0\ReflectedSchemas
或简短版本:
%APPDATA%\Microsoft\VisualStudio\9.0\ReflectedSchemas\
答案 1 :(得分:3)
将<%@ Import %>
指令置于<%@ Register %>
指令之上:
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
答案 2 :(得分:1)
很难说原因是什么,但Visual Studio中的ASP.NET XML解析器经常会遇到这样的问题。以下是我找到的一些可能的解决方法,也许其中一些也适用于您:
如果所有其他方法都失败了,请将标记前缀定义放在web.config文件中:
<configuration><system.web><pages><controls>
<add tagPrefix="ControlLibrary" namespace="MyProject.UI.ControlLibrary.Web" assembly="MyProject.UI.ControlLibrary"/>
</controls></pages></system.web></configuration>
当然,尝试重建等等。
答案 3 :(得分:1)
不知道为什么会这样,但确实如此。当我将一个listview控件的命名空间从MyProject.UI.ControlLibrary.Web更改为MyProject.UI.ControlLibrary并重新指定&lt;%register时,它可以正常工作。
答案 4 :(得分:1)
在我的情况下,我发现如果控件程序集已经注册到web.config中的前缀,然后尝试使用@register将其注册到不同的前缀,那么您将收到此错误消息。< / p>