我下载并安装了Microsoft提供的Ajax Toolkit到我的Visual Studio副本中。我正在尝试使用控件的在线示例,我遇到了以下差异。我已经安装了工具包,可以通过工具箱访问它。我添加了对这个特定项目的引用
但是当我从工具包中拖放AutoCompleteExtender控件时,我发现ASP有些不同。我看到像
这样的东西<asp:AutoCompleteExtender>
但我见过的所有示例都显示了<ajaxToolkit:AutoCompleteExtender>
之类的语法
但是,当我尝试使用该语法时,我收到警告“无法识别的标签前缀或设备过滤器'ajaxToolkit'。”
证明ToolKit已安装
这里有什么不同? Intellisense没有获取ajaxToolkit标记,甚至在为AjaxToolkit命名空间中的所有内容添加using语句后,仍然会收到无法识别的标记的警告消息。
答案 0 :(得分:2)
您所遵循的示例可能是在Ajax Toolkit不是ASP.NET的一部分时编写的,因此您必须手动将引用添加到项目中(在web.config中),并且通常将它们添加到您使用以<ajaxToolkit:
开头的标记的方式您可以将其更改为任何类型的前缀。
既然它是ASP.NET的一部分,您不需要创建单独的引用(它可能会自动添加),因此它们使用了普通的<asp:
标记前缀。
答案 1 :(得分:2)
标记名称的这一部分是前缀,您(或库)在您放弃控件的页面上设置它,或者在web.config上设置为全局设置。
在页面顶部,但在第一个第一个声明行下:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit"
TagPrefix="ajaxToolkit" %>
web.config
上的使其全局化,无需在每个页面上添加它:
<pages >
<controls>
<add namespace="AjaxControlToolkit" assembly="AjaxControlToolkit" tagPrefix="ajaxToolkit" />
</controls>
</pages>
如果您在这两个示例中看到我将TagPrefix设置为您在示例中看到的那个。
答案 2 :(得分:0)
您可能在ASP.net安装中使用了错误版本的工具包。
我发现我必须确保使用正确版本的ASP.net。我试图在我的网站的ASP.net 2版本中使用3.5 AjaxToolKit DLL。
我只是将这一行放在我的ASPX页面上,从那以后它就没事了。
<%@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
Namespace="System.Web.UI" TagPrefix="asp" %>