AjaxControlToolkit 需要 ASP.NET Ajax 4.0 脚本错误。

6

我在生产环境中遇到了AjaxToolkit Calendar的显示错误。但是在本地调试时,这个问题不存在,日历日期选择器可以完美工作。其他所有帖子都围绕着这个工具包根本无法使用展开。我很担心为什么测试可以正常工作,但是在生产环境中却不能。因为我找不到任何在我的代码中使用ASP.NET ScriptManager的参考。

以下内容在“Site.Master”上:

<ajaxToolKit:ToolkitScriptManager runat="server">
    <Scripts>
        <%--Framework Scripts--%>            
        <%--<asp:ScriptReference Name="jquery" />--%>
        <%--<asp:ScriptReference Name="jquery.ui.combined" />--%>
        <asp:ScriptReference Path="~/Scripts/WebForms/WebForms.js" />
        <asp:ScriptReference Path="~/Scripts/WebForms/WebUIValidation.js" />
        <asp:ScriptReference Path="~/Scripts/WebForms/MenuStandards.js" />
        <asp:ScriptReference Path="~/Scripts/WebForms/GridView.js" />
        <asp:ScriptReference Path="~/Scripts/WebForms/DetailsView.js" />
        <asp:ScriptReference Path="~/Scripts/WebForms/TreeView.js" />
        <asp:ScriptReference Path="~/Scripts/WebForms/WebParts.js" />
        <asp:ScriptReference Path="~/Scripts/WebForms/Focus.js" />
        <asp:ScriptReference Name="WebFormsBundle" />
        <%--Site Scripts--%>

    </Scripts>
</ajaxToolKit:ToolkitScriptManager>

这是一个使用日历功能并将Site.Master作为其MasterPageFile的页面。
<asp:Label ID="DateRangeLabel" runat ="server" Text="Date Range: "></asp:Label>
<asp:TextBox ID="DateFrom" runat="server" Width="95px"></asp:TextBox>
<ajaxtoolkit:calendarextender ID="Calendarextender" runat="server" TargetControlID="DateFrom" PopupPosition="BottomLeft" Format="MM/dd/yyyy"></ajaxtoolkit:calendarextender>
<asp:TextBox ID="DateTo" runat="server" Width="95px"></asp:TextBox>
<ajaxtoolkit:calendarextender ID="Calendarextender1" runat="server" TargetControlID="DateTo" PopupPosition="BottomLeft" Format="MM/dd/yyyy"></ajaxtoolkit:calendarextender>

这是我的Web.config文件的一部分。
<controls>
    <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />        
    <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit"/>
</controls>

这是在生产环境中生成的错误:

Uncaught Error: AjaxControlToolkit requires ASP.NET Ajax 4.0 scripts. Ensure the correct version of the scripts are referenced. If you are using an ASP.NET ScriptManager, switch to the ToolkitScriptManager in AjaxControlToolkit.dll.

Uncaught TypeError: undefined is not a function  MicrosoftAjax.js:6
5个回答

18

搞定了。非常感谢你的帮助。我以为在发布之前我已经删除了现有的文件,但显然不是这样。 - Rafiki
谢谢你,你帮我节省了时间! - Tchaps
似乎通过软件包管理器安装工具包(而不是控制台)会保留旧文件 - 想知道为什么我没有遇到通常的“MsAjaxBundle不是有效的脚本名称”问题。这解决了它,我的赞成票加入了 :-) - gchq
在我的情况下,Microsoft.ScriptManager.MSAjax.dll引起了问题。 - Arjun Sharma

3
在一个新的Web应用程序中,有多个任务需要完成。在我的新vs2013项目中,我需要执行以下操作:
  1. 不仅要删除Microsoft.AspNet.ScriptManager.MSAjax.dll,还要删除所有类似于Microsoft.AspNet.ScriptManager.*的引用。
  2. 从Bin文件夹中删除所有这些文件。
  3. 然后重新构建项目。
希望这可以帮助某些人! 我误读了上面的建议(是我的错)。请记住,还要删除解决方案中创建的所有引用。

2

您可能还需要在项目属性中删除对Microsoft.AspNet.ScriptManager.MSAjax.dll的引用。这是我解决问题所需做的。


1

我只从bin目录中排除Microsoft.AspNet.ScriptManager.MSAjax.dll


这不是与现有的已接受的答案相同吗? - cfi

1

http://ajaxcontroltoolkit.codeplex.com/workitem/27639

这是如何通过NuGet在包管理器控制台命令行上安装旧版本的方法: Install-Package AjaxControlToolkit -Version 7.607.0
我也遇到了AjaxControlToolkit 7.1213的这个问题。像mlippold建议的那样恢复到7.607.0版本,解决了我的问题。谢谢!

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