VS2012 中无法识别的标签前缀或设备过滤器“asp”

问题描述 投票:0回答:18

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

 下的 
ReflectedSchemas

文件夹

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

但仍然不起作用。有人在 VS2012 中遇到过这个问题吗?

asp.net visual-studio-2012 intellisense
18个回答
33
投票

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


25
投票

你的 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,则删除整个部分)。这对我有用。


14
投票

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

检查您要添加内容页面的母版页是否缺少

**<body>** or <form>
标签!

如果万一缺少此标签,则无法识别此

<asp>
标签。


9
投票

对于使用 .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>

4
投票

RuudvanFalier 的回答让我考虑了 tagPrefixes,因此我在我的 aspx 页面中删除了以下内容,然后将其添加回来,警告就消失了。

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

4
投票
<%@ Page Title="" Language="VB" MasterPageFile="something" AutoEventWireup="false" CodeFile="something" Inherits="something" %>
<br/><br/>

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


3
投票

我通过将 .Net 版本(在项目属性中)从 4.5 更改回 3.5 成功消除了这些错误。然后我将其改回 4.5,错误没有返回。


3
投票

因不小心而造成

我的问题已解决

我删除了下面的结构,

.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>

3
投票

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


3
投票

只需从页面中剪切页面指令行即可将其保存。将页面指令行粘贴回来并再次保存。这对我有用。我用的是vs2019..


2
投票

对我来说,这个错误是在我在发布过程中遇到错误之后开始发生的(我也将其设置为编译 .aspx 页面)。请注意,双击错误不会加载解决方案源代码,而是加载

obj
子文件夹中的副本。即检查您是否已打开实际源代码

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


2
投票

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

喜欢:

MasterPageFile="~/Master.Master"


1
投票

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


0
投票
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

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

现任:Flippertech ASP 开发人员


0
投票

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


0
投票

我在 ASP.NET 4 网站上遇到了这个问题。添加 3.5 兼容性修复了它。

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

0
投票

就我而言,现有的解决方案都不起作用,但其中一个解决方案敲响了警钟。我在 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,以便它正确解析您的页面。这只是一个理论,但无论如何它都有效,所以我希望这个解决方案也适用于其他人。


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.