我第一次尝试使用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控件。 还有什么需要做才能实现它吗?请帮忙!!
答案 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 ...>
行 -
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
答案 4 :(得分:0)
旧线程但新答案:)
陷入同样的问题。问题是错误地将额外的行复制到Web.Config中。这导致配置部分无效。
修正了线条和asp标签一旦被智能感知识别就会被识别。