Asp.Net Server.Transfer Toolkit ScriptManager的问题

时间:2011-06-02 19:18:09

标签: asp.net ajaxcontroltoolkit scriptmanager server.transfer

我正在一个在母版页中有一个toolkitscriptmanager的网站上工作。我的问题在于导航到执行server.transfer的页面时。我实际上也在使用网址重定向,但据我所知,这与问题无关。

如果我将代码更改为Response.Redirect,页面重定向很好,但这不是我正在寻找的功能,我需要保留SEO友好的网址。

例如 - 在Page1.aspx的代码中说有一个Server.Transfer到Page2.aspx。我所诊断的是,脚本管理器会为您浏览的页面添加脚本引用。所以,如果我直接导​​航到Page2.aspx,添加的脚本是

<script src="/Page2.aspx?_TSM_HiddenField_=ctl00_ctl00_ToolkitScriptManager1_HiddenField... etc

然而,使用Server.Transfer,它正试图找到

<script src="/Page1.aspx?_TSM_HiddenField_=ctl00_ctl00_ToolkitScriptManager1_HiddenField... etc

如何告诉ScriptManager使用脚本文件的最终目标?我一直在研究尝试在TSM中使用一些神奇的设置但到目前为止没有运气。

1 个答案:

答案 0 :(得分:2)

经过一些挖掘和测试,我能够让它发挥作用。我不得不将头部定义的脚本移动到TSM中,并使用CompositeScripts:

<act:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" CombineScripts="false">
            <CompositeScript>
                <Scripts>
                    <asp:ScriptReference Path="/js/jquery.1.4.2.min.js" />
                    <asp:ScriptReference Path="/js/jquery-ui.1.8.5.min.js" />
                    <asp:ScriptReference Path="/js/jlEmbed.js" />
                </Scripts>
            </CompositeScript>
        </act:ToolkitScriptManager>

我发现stringe是如果我设置CombineScripts = true,TSM会将所有js文件编译成自己的内部脚本 - 然后仍然将脚本引用它所在的页面。通过转动CombineScripts = false,它仍然可以编译js文件,单独执行,也可以对页面脚本引用进行编译。