2

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

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

例如 - 假设在 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 中使用一些魔法设置,但到目前为止还没有运气。

4

1 回答 1

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 设置为 false,它仍然会编译 js 文件,单独执行它们,并且对于页面脚本引用也是如此。

于 2011-06-03T19:00:16.083 回答