AjaxControlToolkit结合了脚本Sys.Extended.UI undefined

时间:2017-02-21 17:09:03

标签: c# asp.net ajax ajaxcontroltoolkit toolkitscriptmanager

我正在使用ajaxToolkit ToolkitScriptManager的开箱即用脚本组合功能,例如:

<ajaxToolkit:ToolkitScriptManager ID="manScript" runat="server" CombineScripts="true"></ajaxToolkit:ToolkitScriptManager>

这样工作正常,脚本资源文件被组合,这是期望的结果,但是在某些页面上,那些使用ValidatorCallout的页面由于找不到脚本引用而中断:

  

未捕获的TypeError:无法读取属性&#39; UI&#39;未定义的

示例:

Sys.Application.add_init(function() {
    $create(Sys.Extended.UI.ValidatorCalloutBehavior, {"ClientStateFieldID":"ctl00_ucBookingOverlayForm_vceEmailRfv_ClientState","closeImageUrl":"/WebResource.axd?d=f1QpGIE3tIwIlwHDSgFaMKzu_EDD74IJxTW0wu5XFBsijDtCLxDaIo2PLWkvmpuVhGM3qlhvBO657x4jHl-GgLAybfgjNbFabkTpkICSknrDRSEDk5EuUA23IYRXprVpF1a4fg2\u0026t=636155032911179735","highlightCssClass":"error","id":"ctl00_ucBookingOverlayForm_vceEmailRfv","warningIconImageUrl":"/WebResource.axd?d=J2f54MGVNKrbG7KUyE1UxWfAcESo9_Mj-3_tX4cOIGXtDsrNI96CS2rrIj0oLhO9ioIMaeIGa4hw-cuLd_AbF7V_P4hYubyJCjWCGBeOh8DYw-SCx23Kl5noFRHYQAgpnIVCKOe3QyH3vNqc8QhIYA93_YU1\u0026t=636155032911179735"}, null, null, $get("ctl00_ucBookingOverlayForm_reqLocation"));
});

由于某种原因,它没有找到Sys.Extended.UI.ValidatorCalloutBehavior。我猜这个脚本组合功能不包含这个脚本吗?因为通过设置CombineScripts="false"来解决错误,所以这不是解决方案,因为我需要脚本组合功能。

我无法升级到新版本的AjaxControlToolkit,因为我使用的CMS依赖于此特定版本(4.1.60919.0)。

1 个答案:

答案 0 :(得分:1)

虽然我无法检测到此行为的原因,但您可以尝试将旧程序集重定向到这样的新版本:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="AjaxControlToolkit" publicKeyToken="28f01b0e84b6d53e" culture="neutral"/>
            <bindingRedirect oldVersion="0.0.0.0-4.1.60919.0" newVersion="16.1.1.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>
相关问题