AjaxControlToolkit 7.0123打破了VS2012 Web应用程序项目

时间:2013-04-06 14:01:24

标签: ajaxcontroltoolkit asp.net-4.5

我有一个运行良好的VS2012 Web应用程序,直到我添加了最新的AjaxControlToolkit(7.0123)。最初,我发现安装破坏了UpdatePanel的行为 - 而在我可以在异步回发后刷新页面而不重复操作之前,我发现安装后刷新会重复上一次操作(我想回发后)不再是异步的。)

然后我注意到,在过去的某个时候,我已经注释掉了一些添加到新的ASP.NET Web窗体应用程序的默认JavaScript文件,所以我尝试重新添加它们。这导致了例外:

  

'MsAjaxBundle'不是有效的脚本名称。名称必须以   ”的.js'。

然后我尝试用<asp:ScriptManager .../>替换默认的<ajaxControlToolkit:ToolkitScriptManager .../>,这导致了新的异常

  

无法加载文件或程序集“System.Web”或其中一个   依赖。系统找不到指定的文件。

为了理智,我创建了一个新的ASP.NET Web窗体应用程序(VS2012,Update 2)并运行它。没有错误。使用“nuget”,然后我添加了AjaxControlToolkit v7.0123(最新版本)。再次运行应用程序,我再次获得原始异常:

  

'MsAjaxBundle'不是有效的脚本名称。名称必须以   ”的.js'。

我再次将<asp:ScriptManager .../>替换为<ajaxControlToolkit:ToolkitScriptManager .../>,再次导致

  

无法加载文件或程序集“System.Web”或其中一个   依赖。系统找不到指定的文件。

有人可以解释我还需要做些什么来解决这个问题吗?在添加工具包时,我无法找到任何需要手动更改的文档。

谢谢,

3 个答案:

答案 0 :(得分:12)

http://stephenwalther.com/archive/2012/09/20/september-2012-release-of-the-ajax-control-toolkit.aspx找到答案(总是在发布问题之后)

  • <asp:ScriptManager .../>替换<ajaxControlToolkit:ToolkitScriptManager .../>是正确的
  • 需要删除对MsAjaxBundle的引用
  • 需要从脚本引用中删除Assembly =“System.Web”

这可以修复异常(在新项目和原始项目中)。

但它不能解决UpdatePanel不再异步回发的问题。我会提出这个问题。

答案 1 :(得分:2)

如果您使用的是2013年4月发布的Ajax Control Toolkit,请参阅Stephen Walther的最新博文:

http://stephenwalther.com/archive/2013/04/30/april-2013-release-of-the-ajax-control-toolkit.aspx

我错过了允许AjaxFileUpload控件在新版本中运行的新web.config设置

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" maxRequestLength="42949672" />
    <httpHandlers>
      <add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
    </httpHandlers>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <handlers>
      <add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
    </handlers>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="4294967295"/>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

答案 2 :(得分:0)

当你看到这个&#34;&#39; MsAjaxBundle&#39;不是有效的脚本名称。该名称必须以&#39; .js&#39;。&#34;

结尾

你能做的最好的事情是:

  1. 转到站点主站(双击它)
  2. 搜索&#34; MsAjaxBundle&#34;或&#34; &#34;
  3. 评论此行,例如。 &LT;%----%GT;
  4. 保存或编译您的程序,然后运行它
  5. 感谢上帝现在正在努力