AjaxControlToolkit需要使用ASP.NET Ajax 4.0脚本。

8

有没有人能提供这个问题的解决方案?

Microsoft JScript运行时错误:AjaxControlToolkit需要ASP.NET Ajax 4.0脚本。确保引用了正确版本的脚本。如果您正在使用ASP.NET ScriptManager,请切换到AjaxControlToolkit.dll中的ToolkitScriptManager。

我正在使用asp.net 3.5,VS 2008。我在AjaxControlToolKit.dll文件中看到的版本是3.5.40412.2。

9个回答

11
尝试这个: 更改
<asp:ScriptManager ID="scriptManager1" runat="server"></asp:ScriptManager> 

<ajaxToolkit:ToolkitScriptManager ID="toolkitScriptManager1" runat="server"></ajaxToolkit:ToolkitScriptManager> 

10

我已经查看了这个链接。当我将ScriptManager更改为ToolScriptManager时,它显示以下错误:“无法从程序集'System.Web.Extensions,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'中加载类型'System.Web.UI.ScriptReferenceBase'”。 - saknet
@saknet - 请查看我编辑后的答案,以解决您的类型加载错误。 - Sachin Shanbhag
对我没用。下面@Spidy的答案确实有效。 - user736893

6
尝试删除 bin 文件夹中的 Microsoft.ScriptManager.MSAjax.dll

2
永远不要听那些建议你删除硬盘上东西的人。更好的建议是将其重命名或移动位置。 - Oliver W.
好的,建议已经注意到了!谢谢。 - user4432964
3
除了将位于 bin 文件夹中的 Microsoft.ScriptManager.MSAjax.dll 重命名之外,确保它不在您的 Visual Studio 项目的“引用”部分中。我从未添加过它,但它最终出现在那里,并且让我困扰了数天,直到我意识到它在那里。 - Melanie

1

我认为你的VS 2008版本存在问题。因为Ajax 3.5 dll需要最低Visual studio service pack 1。但是你可能没有安装服务包1,所以请安装它。

在安装服务包1之前,请从工具栏中删除Ajax工具包,当安装完成后再添加并运行。我之前也遇到了同样的问题,我是通过这种方式解决的。


1
使用AjaxControlToolkit.dll并通过以下方式进行注册:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

然后,使用以下代码替代Script Manager:
<cc1:ToolkitScriptManager runat="server"></cc1:ToolkitScriptManager>

1
从您的bin文件夹中删除Microsoft.ScriptManager.MSAjax.dll和Microsoft.ScriptManager.WebForms.dll。这对我有用。

1
对于其他遇到这个问题的人:如果您的bin目录中有无法加载的程序集,即使您在项目中没有引用它们,GetAjaxFrameworkAssemblyAttribute 在第一次加载时会抛出异常,然后在以后的加载中无法工作(不会抛出异常)。 这个问题可能只是偶尔发生。请参见Microsoft Connect IssueGoogle Groups issue/work-around discussion。因此,请尽量不要将无法使用的DLL放入bin目录中。

0

当我在母版页上设置了ScriptManager时,我遇到了这个问题,这是作为默认模板的一部分添加的。

我在内容页面上得到了错误提示,而该页面具有ToolKitScriptManager,而母版页则具有ScriptManager。

我从母版页中删除了ScriptManager以消除该错误。

以下是详细介绍两者之间差异的参考页面。 http://blog.turlov.com/2008/05/scriptmanager-vs-toolkitscriptmanager.html

希望对某人有所帮助!


0

在搜索和尝试了许多解决方案后,这个对我有用:

在 projectName.csproj 文件中,在 <ItemGroup> 中删除 <Folder Include="bin\" />

我的情况:

  1. 我在 bin 文件夹中没有 Microsoft.ScriptManager.MSAjax.dll
  2. <asp:ScriptManager ...> 更改为 <ajaxToolkit:ToolkitScriptManager ...> 没有意义,因为需要更改的标签太多了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接