无法识别的标记前缀或设备过滤器(Visual Studio 2010)

时间:2012-02-24 09:27:19

标签: c# asp.net visual-studio-2010 ajaxcontroltoolkit

我第一次尝试使用Visual Studio 2010(Asp.Net 4.0)。我想使用Ajax控件,主要是ComboBox控件。

我按照本link中提到的分步过程下载并安装了AjavControlToolkit。

我还按照link的步骤将ComboBox添加到我的网页。

但无论我做什么,控制下都有一条绿线,我收到错误“无法识别的标签前缀或设备过滤器'ajax'”。

我的web.config文件如下所示:

         <configuration>
       <system.web>
    <pages>
        <controls>
            <add tagPrefix="ajax" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>
            <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"/>
        </controls>
    </pages>
    <compilation debug="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation>
  </system.web>
    </configuration>

aspx页面如下所示:

     <form id="form1" runat="server">
       <div>
        <asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>
        <ajax:ComboBox runat="server" AutoCompleteMode="SuggestAppend">
          <asp:ListItem>ddd</asp:ListItem>
          <asp:ListItem>fff</asp:ListItem>
          <asp:ListItem>gggg</asp:ListItem>
          <asp:ListItem>hhhhh</asp:ListItem>
        </ajax:ComboBox>    
       </div>
    </form>

我甚至尝试从C:\ Documents and Settings \ xxx \ Application Data \ Microsoft \ VisualStudio \ 10.0 \ ReflectedSchemas位置删除架构文件。

请帮助我成功实施Combobox控件。 谢谢!

编辑:

作为一种不同的方法,我创建了一个新网站,并使用 NuGet 安装了最新版本的AjaxControlToolkit。我重建了解决方案。我仍然无法在intellisense中看到Ajax控件。 还有什么需要做才能实现它吗?请帮忙!!

5 个答案:

答案 0 :(得分:3)

如果您使用的是Visual Studio 2010,那么我建议您从本文(link)中显示的Nuget a下载AJAXControlToolkit。

我昨天偶然发现了同样的问题,有效的做法是将前缀更改为“ ajaxToolkit ”并对脚本管理器做同样的事情,正如Stephen Walter在这篇文章中所展示的那样(link) 。请使用ToolScriptManager而不是ScriptManager。

<ajaxToolkit:ToolScriptManager id="id12" runat="server"/>

答案 1 :(得分:2)

虽然时间似乎已经过去了,但我遇到了一个类似的问题,经过一些“常识”思想的解决后,它可能会帮助其他人。

这样的问题通常是由于页面上的内容未正确加载,控件等或格式错误引起的。任何阻止IDE正确解析页面的东西。

在我的情况下,带有问题控件的页面有一个母版页。由于某种原因,母版页在解析Web实例时遇到问题。主页标题(即页面顶部的“主”标记)带有下划线,其中包含无法将站点与特定IIS元数据库键(即LM / W3SVC / 12或其他)匹配的错误。 / p>

虽然我不知道为什么会发生这种情况(似乎是在使用IIS Express停止调试会话后发生)将解决方案切换到“Visual Studio开发服务器”(即cassini)并重新启动站点解决了主页引用,以及因此,有问题的页面可以正确加载母版页,与无法识别的标签相关的问题就会消失。

因此请检查&lt;%@%&gt;中页面上的任何错误。页面顶部的标签,并检查母版页的“上一级”。

答案 2 :(得分:0)

您的<ajax:ComboBox />似乎缺少ID属性。

...
<ajax:ComboBox ID="MyComboBox" runat="server" AutoCompleteMode="SuggestAppend">
...

要强制注册ajax代码前缀,您可以将其添加到您的页面

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

如果问题仍然存在,您需要检查相应的组件是否可用。

答案 3 :(得分:0)

在我的情况下,使用Telerik Add Scheduler Scenario添加页面后出现此错误。我通过在<% Page ...>行 -

下面的aspx文件中添加以下行来解决它
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>

答案 4 :(得分:0)

旧线程但新答案:)

陷入同样的​​问题。问题是错误地将额外的行复制到Web.Config中。这导致配置部分无效。

修正了线条和asp标签一旦被智能感知识别就会被识别。