Visual Studio 2010的Intellisense无法为asp标记工作

3
我遇到了一些关于Visual Studio 2010 Intellisense的问题。在我的一个项目中,Intellisense无法显示asp.net标记,但仍然可以显示HTML标记。除了这个项目外,我所有的其他项目都正常工作。如果我键入一个asp标记并构建解决方案,它会下划线标记并显示“未识别的标记前缀或设备筛选器'asp'。”但是,它完成了构建而没有任何错误,并且所有页面都可以正确加载/运行。起初,我以为可能是我的电脑出了问题,因为我的同事的电脑都很好用。我查看了许多其他关于类似问题的论坛页面,但是他们的解决方法对我似乎没有用。以下是我迄今为止尝试过的内容:
重建解决方案(可以正常工作且所有东西都能正确运行)
关闭/重新打开Visual Studio
检查我的文本编辑器设置以确保它们正确(工具->选项->文本编辑器->所有语言。然后确保已选中自动列出成员和参数信息。还要检查HTML的文本编辑器是否有相同的设置)
重置我的设置并再次检查它们
尝试以管理员身份运行Visual Studio
尝试在安全模式下运行Visual Studio([Windows 7]开始按钮->所有程序->Microsoft Visual Studio 2010->Visual Studio工具->Visual Studio命令提示符->键入:devenv.exe /SafeMode)
删除C:\ Users [UserName] \ AppData \ Roaming \ Microsoft \ VisualStudio \ 10.0 \ ReflectedSchemas
删除C:\ Users [UserName] \ AppData \ Roaming \ Microsoft \ VisualStudio \ 10.0
在Visual Studio命令提示符中尝试devenv.exe /resetuserdata
安装Service Pack 1
卸载并重新安装Visual Studio 2010
但是每次都还存在问题。今天,我的一个同事在同一项目中(获取最新版本后)遇到了Intellisense无法使用asp标记的相同问题。因此,我认为我们文件中的某些东西被弄乱了。我以为可能是web.config中的tagPrefix声明出了问题,但我认为它是正确的。
是否有人有任何想法是什么导致了这个问题,或者我该如何解决它?非常感谢!

你在使用Resharper吗? - mxmissile
不,我以前没有使用过Resharper。 - Eric Satterness
5个回答

1

检查确保 asp 前缀和程序集仍然在 web.config 中注册:

<pages>
   <controls>
    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
   </controls>
</pages>

编辑

如果那不起作用,请看看这个讨论:

http://social.msdn.microsoft.com/Forums/en/csharpide/thread/e442ee39-fc82-4614-8f2e-374046e39edd


刚刚仔细检查了一下,这正是我在我的web.config文件中所拥有的。 - Eric Satterness
这个项目是否是从较早版本的.NET迁移而来的? - James Johnson
不,我们从未迁移过该项目。 - Eric Satterness
啊,是的,那是我在最初修复问题时关注的帖子之一。不过我的情况与那个稍有不同。我没有使用任何主页面,并且当我悬停在 asp 标记上时没有弹出任何工具提示。 - Eric Satterness
这个回答中提供的链接中的建议之一对我有用:删除%AppData%\Roaming\Microsoft\VisualStudio\10.0\ReflectedSchemas下的模式缓存。 - robnick

1
我曾错误地将父级<body>标签更改为<bod>y(在VS 2010中使用ctrl + T可以实现此功能)在主页面中。因此,从主页面继承的.aspx页面中未能识别子asp标记。修复这个问题是唯一需要做的事情。
像其他人提到的那样,在web.config文件中添加tagPrefix =“asp”并不是必要的。

0

删除模式文件

删除以下文件夹中的所有文件:C:\Users[用户名]\AppData\Roaming\Microsoft\VisualStudio\10.0\ReflectedSchemas。

可以安全地删除此文件夹中的任何内容,因为 Visual Studio 会根据需要重新生成它们。

解除引用程序集的阻止

您的项目中可能存在一个被阻止的引用程序集在您的计算机上出现问题。在 Windows Explorer 中右键单击每个 DLL,选择属性,然后点击“解除阻止”按钮(如果 DLL 被阻止)。


0
与@FuyuPersimmon类似,我的问题是我使用了一个不包含标签的母版页,因为我希望由子页面定义,以便它们可以在标签中各自添加其自己的id=""属性。但即使在asp:Content标记中的子页面中添加了标记,智能感知仍然无法工作。显然,它会因为在同一文件中没有匹配的和而感到困惑。

0
我为这个问题苦苦挣扎了一个多小时,尝试了所有可能的解决方案。最终,对我有效的方法是复制一个没有在 Visual Studio 中遇到问题的同事的设置。顺便提一下,您可以前往“工具”>“导入和导出设置”,从那里就很容易理解了!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接