8

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

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

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

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

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

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

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

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

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

任何人都可以阐明我还需要做些什么来解决这个问题吗?添加工具包时,我找不到任何文档说明需要手动更改任何内容。

谢谢,

4

3 回答 3

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 不再异步回发的问题。我将把它作为一个新问题提出。

于 2013-04-06T14:12:59.353 回答
2

如果您使用的是 2013 年 4 月发布的 Ajax 控制工具包,请参阅 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>
于 2013-05-13T14:24:32.587 回答
0

当您看到此“'MsAjaxBundle' 不是有效的脚本名称。名称必须以 '.js' 结尾。”

你能做的最好的事情是:

  1. 转到网站大师(双击它)
  2. 搜索“MsAjaxBundle”或“”
  3. 评论这一行,例如。<%----%>
  4. 保存或编译您的程序,然后运行它

感谢上帝现在正在工作

于 2015-03-13T11:51:50.387 回答