【问题标题】:Unrecognized tag prefix or device filter 'asp' in VS2012VS2012 中无法识别的标签前缀或设备过滤器“asp”
【发布时间】:2019-08-02 22:24:57
【问题描述】:

我最近安装了 VS2012,并且正在处理我以前使用 VS2010 处理的工作项目。我从来没有遇到过 VS2010 不识别 asp 前缀标签的问题,但 VS2012 是。我尝试删除

下的ReflectedSchemas 文件夹

C:\Users[用户名]\AppData\Roaming\Microsoft\VisualStudio\11.0\

但仍然无法正常工作。有人在 VS2012 中遇到过这个问题吗?

【问题讨论】:

  • 你能分享一些代码和例子吗?这是什么标签,可能这个标签上引用的dll加载失败。
  • 无法识别类似:。这对于 VS2010 来说是合法的
  • 即使是asp.net控件也需要包含一些头文件和一些dll文件。检查您的文件是否正确。
  • 是的,正确的 DLL 以及 web.config 中的标记定义都在那里。这适用于 VS2010。
  • 是的。我在应用程序页面上的 SharePoint 2010 项目中使用 VS2012 Update 1 获得了这个。我试过删除文件,但没有用。如果没有 Intellisense,我会迷失方向。

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


【解决方案1】:

从解决方案资源管理器关闭和重新打开文件(.aspx 文件不是解决方案)在 Visual Studio 2015 中对我有用。在尝试其他任何操作之前,您可以尝试一下。

【讨论】:

  • 所有这些 cmets 都是有效的,但这个对我有用。即使没有关闭并重新启动 Visual Studio,也可以在 VS 2017 中使用。
  • 大声笑。当解决方案真的是非开发人员在询问之前会尝试过的事情时
【解决方案2】:

你的 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>

在这种情况下,删除 asp tagPrefix 的条目(如果没有其他 tagPrefix 则删除整个部分)。这对我有用。

【讨论】:

  • 我的 web.config 中确实有这些。我删除了它们,但智能感知仍然无法识别 asp 标签。即使在 web.config 中有这些条目,这也适用于 VS2010
  • 好的,当我删除这些标签时,它在 VS2012 中对我有用(虽然不再在 VS2010 中,所以你需要把它们放回去)
  • 我实际上引用了 asp 和 telerik 控件。不过,对于 Telerik 控件,我遇到了同样的错误。我删除了引用,尝试编译(得到错误),然后重新添加了引用,它现在可以工作了。一定是 VS 的 bug。
  • 删除 &lt;add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/&gt; 对我有用。感谢您的提示。
  • 也为我工作,如果有人遇到同样的问题,请尝试应用此更改,关闭并再次打开 Visual Studio
【解决方案3】:

如果您在内容页面中遇到此“在 VS2012 中无法识别标签前缀 'asp'”的问题,

检查您在其下添加内容页面的母版页是否缺少**&lt;body&gt;** or &lt;form&gt; 标签!

如果它丢失了这个标签,那么这个&lt;asp&gt;标签就无法识别。

【讨论】:

  • 谢谢!晦涩难懂的问题,但这为我解决了这个问题。我一直在用代码动态编写 标签,例如。 &lt;%= GetBodyTag() %&gt;,因此该标签在 .master 文件的 HTML 中没有出现。将其更改为例如。 &lt;body class="&lt;%= GetBodyClasses() %&gt;"&gt; - 现在 VS 知道标签在那里并且错误已经消失。用代码而不是 HTML 编写标签会破坏整个 VS 智能感知,这非常荒谬。
  • 快速测试:将内容包装在正文标签中......我的错误立即消失了。在我的例子中,遗留的 VB.Net 代码隐藏页面继承自一个类,而该类又继承自 System.Web.UI.Page。父类在其 OnInit(...) 函数中发出 html/head/body 标记,似乎 Microsoft Visual Studio 没有检测到它,因此出现错误。
  • 我正在维护的网站使用 xml 模板而不是母版页,知道如何在不添加第二个正文或重新设计模板系统的情况下解决这个问题吗?
【解决方案4】:

对于使用 .Net 4.0 的项目设置,以下几行有效。

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

【讨论】:

  • 微软对此有官方参考吗?
【解决方案5】:

RuudvanFalier 的回答让我想到了 tagPrefixes,所以我在我的 aspx 页面中删除了以下内容,然后将其添加回来,警告对我来说消失了。

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

【讨论】:

  • 我刚升级到 VS2013 RC 就遇到了这个问题。我的页面上没有注册程序集,但我删除了 然后重新添加它,问题就解决了。
【解决方案6】:
<%@ Page Title="" Language="VB" MasterPageFile="something" AutoEventWireup="false" CodeFile="something" Inherits="something" %>
<br/><br/>

请在第一行之后输入“输入”。它对我有用

【讨论】:

    【解决方案7】:

    由于粗心造成的

    我的问题已解决

    我删除了下面的结构,

    .net 可能会使用它来识别元素,当我把它放回去时一切正常

    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
    
        </div>
        </form>
    </body>
    </html>
    

    【讨论】:

    • 这对于那些已经删除它的人来说是一个很好的解决方案。如果您将 aspx 页面用作 ajax 加载的页面/内容,则有人可能已经这样做了。添加回基本结构允许 .net 再次识别 asp 标签。有趣的是,页面可以识别的任何自定义用户控件都很好。感谢@ARUN 向我指出这一点。
    【解决方案8】:

    只需关闭解决方案并重新打开它对我有用(或关闭 Visual Studio 并重新打开它)。

    【讨论】:

    • 是的!我也是!这很奇怪
    【解决方案9】:

    只需从页面中剪切页面指令行即可保存它而不使用它。将页面指令行粘贴回来并再次保存。这对我有用。我正在使用 vs2019..

    【讨论】:

      【解决方案10】:

      通过将 .Net 版本(在项目属性中)从 4.5 更改回 3.5,我设法摆脱了这些错误。然后我把它改回 4.5 并且错误没有返回。

      【讨论】:

        【解决方案11】:

        对我来说,这个错误是在我在发布过程中遇到错误之后开始发生的(我也将它设置为编译 .aspx 页面)。注意双击错误不会加载您的解决方案源代码,而是在obj 子文件夹中的一个副本。即检查您的实际源代码是否已打开

        是的,这是一个脑残的错误。是的,我只花了 10 分钟调试它。

        【讨论】:

          【解决方案12】:

          您可以尝试在您的 aspx 页面标签中编写母版页

          喜欢:

          MasterPageFile="~/Master.Master"

          【讨论】:

          • 这对我有用;我的 Page 标记缺少 MasterPageFile 属性,并且 asp 标记在运行时工作正常,但在 Visual Studio 中它们被击中了。
          【解决方案13】:

          很抱歉之前没有回答这个问题。虽然我假设 VS2012 服务包或更新为我解决了这个问题。

          【讨论】:

            【解决方案14】:
            <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
            

            在内容页面绑定到母版页的一行之后,将其添加到 ASP 页面顶部。希望你的问题能得到解决。它对我有用。

            现任:Flippertech 的 ASP 开发人员

            【讨论】:

              【解决方案15】:

              如果这个错误出现在那些继承母版页的页面上,那么一个可能的原因是 !DOCTYPE 标记,您可能在页面的某处使用了该标记来将 !DOCTYPE 声明为 html。由于 asp 是 asp.net 前缀标签而不是 html,因此会发生此错误。

              【讨论】:

                【解决方案16】:

                我在 asp.net 4 网站上遇到过这个问题。添加 3.5 兼容性修复它。

                <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
                

                【讨论】:

                  【解决方案17】:

                  在我的情况下,现有的解决方案都没有奏效,但其中一个敲响了警钟。我在 VS2017 解决方案的 MasterPage 中添加了一些标签(包括一些 JavaScript 和 CSS 文件引用),如下所示:

                  <asp:ContentPlaceHolder ID="Content1" runat="server"> <script type="text/javascript" src="behavior.js"></script> </asp:ContentPlaceHolder>

                  我删除了那些脚本标签,错误消失了。奇怪的是,我还有其他页面也继承自同一个 MasterPage,但错误不存在。但是,错误出现在我在解决方案中创建的这个特定页面上 将脚本添加到 MasterPage。我的想法是避免在从 MasterPage 继承的每个页面上添加相同的脚本,因此我将这些脚本再次添加回 MasterPage,只是为了检查......并且错误没有再次出现。 我的理论是 Visual Studio 中的某些内部文件已损坏,如果您将一些脚本或任何内容添加到母版页然后删除它,或者您只是修改母版页以保存更改,这些更改会重写一些内部文件在 Visual Studio 中,它用于解析 ASP 和 HTML 内容。换句话说,这就像“刷新” IDE,以便正确解析您的页面。这只是一个理论,但无论如何它都有效,所以我希望这个解决方案也适用于其他人。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2023-01-25
                    • 1970-01-01
                    • 1970-01-01
                    • 2023-03-05
                    • 2020-03-23
                    相关资源
                    最近更新 更多