6

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

这是使用 Calendar 功能并以 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
4

5 回答 5

18

You might want to try removing Microsoft.AspNet.ScriptManager.MSAjax.dll from bin folder on the server if exists.

AjaxControlToolkit version 7.0123 with .NET 4.5

于 2013-10-15T21:52:41.563 回答
3

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

  1. 不仅删除Microsoft.AspNet.ScriptManager.MSAjax.dll,而且删除所有参考 Microsoft.AspNet.ScriptManager.*
  2. 从 Bin 文件夹中删除所有这些文件
  3. 然后重建项目

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

于 2014-11-22T11:54:24.413 回答
2

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

于 2013-11-12T17:02:18.097 回答
1

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

于 2014-06-26T15:37:01.737 回答
1

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

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

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

于 2014-03-13T17:22:28.717 回答