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

时间:2013-10-15 21:36:53

标签: asp.net ajax ajaxcontroltoolkit scriptmanager

我在生产中遇到AjaxToolkit日历显示错误。本地调试时,此问题不存在,日历日期选择器完美运行。所有其他帖子围绕此工具包不起作用。我关心的是为什么这在测试中有效,而不是生产,因为我在使用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 个答案:

答案 0 :(得分:17)

如果存在,您可能想尝试从服务器上的bin文件夹中删除Microsoft.AspNet.ScriptManager.MSAjax.dll

AjaxControlToolkit version 7.0123 with .NET 4.5

答案 1 :(得分:3)

在新的Web应用程序中,有多个要做的事情。在我的新vs2013项目中,我不得不

  1. 不仅会删除Microsoft.AspNet.ScriptManager.MSAjax.dll,还会删除Microsoft.AspNet.ScriptManager.*
  2. 等所有引用
  3. 从Bin文件夹中删除所有这些文件
  4. 然后重建项目
  5. 这可以帮助别人! 我误读了上述建议(我的错)。记住也要删除从解决方案中提取的所有引用。

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

以下是在Package Manager控制台命令行上通过NuGet安装旧版本的方法: 安装包AjaxControlToolkit -Version 7.607.0

我遇到了AjaxControlToolkit 7.1213这个问题。像mlippold建议的那样,恢复到7.607.0,解决了我的问题。谢谢!

答案 4 :(得分:1)

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