自定义ASP.Net Ajax框架

时间:2009-11-23 16:09:06

标签: javascript asp.net-ajax asp.net-3.5 webforms

当我在Web窗体Web应用程序中使用脚本管理器时,ASP.Net从哪里加载Ajax框架? (你知道提供$ find,$ get函数的那个​​。)

我正在寻找替换内置$ find,$ get和一些额外的逻辑来解决母版页名称错误。

有人知道我能做到最好的方法吗?

我想我可以编辑源文件,也可以注入一些脚本,将函数重新分配给我的实现。只是不确定注入该代码的最佳位置。

您可以阅读我的相关名称mangling母版页问题here

由于

1 个答案:

答案 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