我在生产中遇到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
答案 0 :(得分:17)
如果存在,您可能想尝试从服务器上的bin文件夹中删除Microsoft.AspNet.ScriptManager.MSAjax.dll
。
答案 1 :(得分:3)
在新的Web应用程序中,有多个要做的事情。在我的新vs2013项目中,我不得不
Microsoft.AspNet.ScriptManager.MSAjax.dll
,还会删除Microsoft.AspNet.ScriptManager.*
这可以帮助别人! 我误读了上述建议(我的错)。记住也要删除从解决方案中提取的所有引用。
答案 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