当我在Web窗体Web应用程序中使用脚本管理器时,ASP.Net从哪里加载Ajax框架? (你知道提供$ find,$ get函数的那个。)
我正在寻找替换内置$ find,$ get和一些额外的逻辑来解决母版页名称错误。
有人知道我能做到最好的方法吗?
我想我可以编辑源文件,也可以注入一些脚本,将函数重新分配给我的实现。只是不确定注入该代码的最佳位置。
您可以阅读我的相关名称mangling母版页问题here
由于
答案 0 :(得分:2)
脚本直接来自System.Web.Extensions程序集。但您可以使用脚本引用更改脚本的来源,如下所示:
<asp:ScriptManager runat="server">
<Scripts>
<asp:ScriptReference Name="MicrosoftAjax.js" Path="~/scripts/MicrosoftAjax.js" />
</Scripts>
</asp:ScriptManager>
要获取脚本,只需直接从渲染页面中取出,将其粘贴到地址栏中,然后下载脚本。
有一件事 - 程序集中实际上有两个版本的MicrosoftAjax.js。发行版和调试版。调试版本有很多额外的脚本来进行类型检查,而不是通过javascript minifier进行处理。因此,您可以轻松地自定义它,但脚本的大小将非常大。它并不意味着在生产环境中使用。因此,我强烈建议您自定义发行版本(由于必须使用已经破解的脚本而非常困难),或者通过Microsoft Ajax Minifier运行自定义脚本来重现发行版本:
http://stephenwalther.com/blog/archive/2009/10/16/using-the-new-microsoft-ajax-minifier.aspx
要获得两个版本,只需将debug =“false”值翻转为“true”,然后重复下载步骤。将它命名为foo.js和foo.debug.js(foo是你想要的任何东西--MicrosAAax是显而易见的选择!)
另外请确保并查看更改脚本来自ASP.NET 4.0的新方法。刚刚在这里写博客:
http://weblogs.asp.net/infinitiesloop/archive/2009/11/23/asp-net-4-0-scriptmanager-improvements.aspx