【问题标题】:AjaxControlToolkit requires ASP.NET Ajax 4.0 scripts ErrorAjaxControlToolkit 需要 ASP.NET Ajax 4.0 脚本错误
【发布时间】:2013-10-23 20:49:24
【问题描述】:

我仅在生产中遇到 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

【问题讨论】:

    标签: asp.net ajax ajaxcontroltoolkit scriptmanager


    【解决方案1】:

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

    AjaxControlToolkit version 7.0123 with .NET 4.5

    【讨论】:

    • 修复了它。我感谢您的帮助。我以为我在发布之前删除了现有文件,但我想不是。
    • 谢谢。你节省了我的时间!
    • 似乎通过包管理器(而不是控制台)安装工具包会使旧文件保持原样 - 想知道为什么我没有得到通常的“MsAjaxBundle 不是有效的脚本名称”。问题。解决了它,我的支持添加了:-)
    • Microsoft.ScriptManager.MSAjax.dll 在我的情况下引起了问题
    【解决方案2】:

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

    1. 不仅删除Microsoft.AspNet.ScriptManager.MSAjax.dll,还删除所有引用,如Microsoft.AspNet.ScriptManager.*
    2. 从 Bin 文件夹中删除所有这些文件
    3. 然后重建项目

    希望这可以帮助某人! 我误读了上述建议(我的错)。请记住删除从解决方案中所做的所有引用。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        我在使用 AjaxControlToolkit 7.1213 时遇到了这个确切的问题。恢复到 7.607.0,就像 mlippod 建议的那样,为我解决了这个问题。谢谢!

        【讨论】:

          【解决方案5】:

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

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-16
          • 1970-01-01
          • 2014-09-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多