2 Stimmen

Asp.Net Server.Transfer Problem mit Toolkit ScriptManager

Ich arbeite an einer Website, die einen Toolkitscriptmanager auf der Hauptseite hat. Mein Problem liegt darin, dass ich zu einer Seite navigiere, die einen server.transfer durchführt. Ich verwende zwar auch Url-Redirects, aber soweit ich das beurteilen kann, hat das keinen Einfluss auf das Problem.

Wenn ich den Code in Response.Redirect ändere, wird die Seite gut umgeleitet, aber das ist nicht die Funktionalität, die ich suche, ich muss die SEO-freundlichen URLs behalten.

Zum Beispiel - sagen wir, im Code von Page1.aspx gibt es einen Server.Transfer zu Page2.aspx. Ich habe festgestellt, dass der Skript-Manager einen Skript-Verweis zu der Seite hinzufügt, auf der Sie sich befinden. Wenn ich also direkt zu Page2.aspx navigieren würde, wäre das hinzugefügte Skript

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

Mit dem Server.Transfer wird jedoch versucht, die

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

Wie kann ich dem ScriptManager mitteilen, dass er das endgültige Ziel für die Skriptdatei verwenden soll? Ich habe nachgeforscht und versucht, eine magische Einstellung im TSM zu verwenden, aber bisher ohne Erfolg.

2voto

JonK Punkte 622

Nach einigem Tüfteln und Testen konnte ich dies zum Laufen bringen. Ich musste meine im Kopf definierten Skripte in den TSM verschieben und die CompositeScripts verwenden:

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

Wenn ich CombineScripts=true einstelle, kompiliert der TSM alle js-Dateien in sein eigenes internes Skript - und platziert dann trotzdem das Skript, das auf die Seite verweist, auf der es sich befindet. Wenn ich CombineScripts=false einstelle, werden die js-Dateien immer noch kompiliert, und zwar einzeln, und auch für den Skriptverweis auf die Seite.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X