【问题标题】:Visual Studio 2010 Intellisense doesn't work for asp tagsVisual Studio 2010 Intellisense 不适用于 asp 标签
【发布时间】:2011-10-28 08:39:26
【问题描述】:

我在使用 Visual Studio 2010 Intellisense 时遇到了一些问题。在我的一个项目中,Intellisense 不显示 asp.net 标签。但是,它仍然显示 HTML 标记。除了这个,我所有的其他项目都运行良好。如果我输入一个 asp 标签并构建解决方案,它会在标签下划线并显示“无法识别的标签前缀或设备过滤器‘asp’”。但它在没有任何错误的情况下完成了构建,并且所有页面都正确加载/运行。起初我以为这可能是我的电脑,因为它对我的同事来说运行良好。我查看了许多其他关于类似问题的表单页面,但他们的修复似乎对我不起作用。以下是我迄今为止尝试过的事情:

重建解决方案(效果很好,一切正常)

关闭/重新开放的视觉工作室

检查了我的文本编辑器设置以确保它们正确(工具->选项->文本编辑器->所有语言。然后确保选中自动列表成员和参数信息。还检查了文本编辑器-> HTML相同的设置)

重置我的设置并再次检查它们

尝试以管理员身份运行 Visual Studio

尝试在安全模式下运行 Visual Studio([Windows 7] 开始按钮->所有程序->Microsoft Visual Studio 2010->Visual Studio 工具->Visual Studio 命令提示符-> 键入:devenv.exe /SafeMode)

已删除 C:\Users[用户名]\AppData\Roaming\Microsoft\VisualStudio\10.0\ReflectedSchemas

已删除 C:\Users[用户名]\AppData\Roaming\Microsoft\VisualStudio\10.0

在 Visual Studio 命令提示符下尝试了 devenv.exe /resetuserdata

已安装 Service Pack 1

卸载并重新安装 Visual Studio 2010

在每一个之后问题仍然存在。不过今天,我的一位同事遇到了同样的问题,即 Intellisense 无法在同一个项目中处理 asp 标签(在获得最新版本后)。所以我认为这一定是我们文件中的某些东西搞砸了。我假设它是我们 web.config 中的 tagPrefix 声明。但它看起来对我来说是正确的。

是否有人对可能导致此问题的原因和/或如何解决此问题有任何想法?我真的很感激!

【问题讨论】:

  • 你在使用 Resharper 吗?
  • 不。我以前没用过 Resharper。

标签: asp.net visual-studio-2010 intellisense


【解决方案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 中所拥有的
  • 这个项目有没有可能是从旧版本的 .NET 迁移而来的?
  • 不,我们从未迁移过项目
  • 啊,是的,那是我最初修复时关注的帖子之一。不过,我的情况与那个略有不同。当我将鼠标悬停在 asp 标记上时,我没有使用任何母版页并且没有弹出工具提示。
  • 此答案中链接提供的建议之一对我有用:删除 %AppData%\Roaming\Microsoft\VisualStudio\10.0\ReflectedSchemas 下的架构缓存
【解决方案2】:

我错误地将母版页中的父 &lt;body&gt; 标签更改为 &lt;bod&gt;y(ctrl+T 在 VS 2010 中执行此操作)。因此,子 asp 标记在从母版页继承的 .aspx 页面中无法识别。只需解决这个问题。

没有必要像其他人提到的那样将 tagPrefix="asp" 添加到 web.config 文件中。

【讨论】:

    【解决方案3】:

    我在这个问题上苦苦挣扎了一个多小时,尝试了所有解决方案。最后对我有用的是从一个对他的视觉工作室没有问题的同事那里复制设置。仅供参考,转到工具>导入和导出设置。从那里是常识!

    【讨论】:

      【解决方案4】:

      类似于@FuyuPersimmon,我的问题是我使用了一个不包含

      标签的母版页,因为我希望子页可以定义它,以便它们可以各自拥有自己的 id="" 标签的属性。但是即使在 asp:Content 标记内的子页面中添加 标记后,智能感知仍然不起作用。显然它会因为在同一个文件中没有匹配的 和 而感到困惑。

      【讨论】:

        【解决方案5】:

        删除架构文件

        删除以下文件夹中的所有文件:C:\Users[UserName]\AppData\Roaming\Microsoft\VisualStudio\10.0\ReflectedSchemas.

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

        取消阻止引用的程序集

        您的项目中引用的程序集之一在您的计算机上被阻止可能存在问题。在 Windows 资源管理器中右键单击每个 DLL,选择“属性”,然后单击“取消阻止”按钮(如果 DLL 被阻止。)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-07-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-21
          • 2012-07-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多