none
Server.Transfer equivalent JavaScript

    Frage

  • Hallo allerseits,

    würde gerne mittels JavaScript andere aspx Seiten aufrufen ohne das sich die URL ändert sowie beim Server.Transfer.
    Da ich lediglich nur Webspace habe kann ich keine PlugIns (wie bsp: UrlRewriter) installieren.
    Die Aufrufe erfolgen in JavaScript Dateien. Derzeit rufe ich die Seiten mit

    $("[id*='lnkIDX2MM']").live("click", function () {
        window.location.href = "Tour.aspx";
        return false;
    });

    Diese Variante schreibt allerdings die aufrufende URL.
    Wie kann ich das bewertkställigen das immer

    "http://beispieldomain.com" oder
    "http://beispieldomain.com/Index.aspx"

    in der URL steht. Wäre für jede Hilfe sehr dankbar.
    Lg
    WaZZ

    Donnerstag, 5. September 2013 13:28

Antworten

  • Hallo Stefan,

    danke für die Antwort.

    Das mit der urlMapping würde mein Problem nicht lösen da es dabei nicht die URL ändert sondern die neue URL aufruft und anzeigt. Ich möchte aber das immer
    "http://beispieldomain.com" oder
    "http://beispieldomain.com/Index.aspx"
    angezeigt wird. Vielleicht macht es ja das auch aber ich habs nicht hinbekommen.

    <add url="~/Old/(.*)" mappedUrl="~/New/$1" />

    Ich habe ins Old "~/Tour.aspx" und ins MappedUrl "~/myhome.aspx" eingegeben.
    Und wenn man dann auf Tour klickt, wird zwar die in der Adresszeile die URL auf "http://localhost:54487/Tour.aspx" geändert aber auf die Seite "http://localhost:54487/myhome.aspx" redirected.
    Ich brächte es sozusagen den umgekehrten Fall, Url gleich Inhalt ändert sich.

    Die Möglichkeit die aspx Seite mit Parameter aufzurufen habe ich auch in Betracht gezogen jedoch wären das zwei Requests.
    Und wenn man auf manche Seiten viele Elemente (Berichte, Neuigkeiten, Nachirchten, Fotos, ggf. Video usw.) hat könnte das zu einem Performanceverlust führen. Hast du dies bzgl. Erfahrung, auch im Mobile Bereich?


    Danke im voraus und Lg
    WaZZ




    • Als Antwort markiert WaZZkeSS Montag, 9. September 2013 13:50
    Donnerstag, 5. September 2013 17:39

Alle Antworten

  • Hi,

    das kannst Du gar nicht, es sei denn, Du möchtest ein sog. 100% Frame (igitt) einsetzen oder hast die Möglichkeit, urlMappings zu nutzen. Zu letzterem siehe:

      http://msdn.microsoft.com/de-de/library/vstudio/ms228302.aspx

    Eine weitere Möglichkeit wäre, die index.aspx mit einem Parameter aufzurufen und dann serverseitig durch Server.Transfer die Ausgabeseite aufzurufen.

    Also bspw. so:

    window.location.href = "index.aspx?Page=Tour";

    Aber erlaube mir die Frage, warum Du das so haben willst? Es gibt für mich keinen ersichtlichen Grund, den URL zu "verstecken". Wenn Du "schöne" URLs haben willst, kannst Du für einfache Seitenstrukturen auch o.g. urlMappings verwenden.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Donnerstag, 5. September 2013 14:19
  • Hallo Stefan,

    danke für die Antwort.

    Das mit der urlMapping würde mein Problem nicht lösen da es dabei nicht die URL ändert sondern die neue URL aufruft und anzeigt. Ich möchte aber das immer
    "http://beispieldomain.com" oder
    "http://beispieldomain.com/Index.aspx"
    angezeigt wird. Vielleicht macht es ja das auch aber ich habs nicht hinbekommen.

    <add url="~/Old/(.*)" mappedUrl="~/New/$1" />

    Ich habe ins Old "~/Tour.aspx" und ins MappedUrl "~/myhome.aspx" eingegeben.
    Und wenn man dann auf Tour klickt, wird zwar die in der Adresszeile die URL auf "http://localhost:54487/Tour.aspx" geändert aber auf die Seite "http://localhost:54487/myhome.aspx" redirected.
    Ich brächte es sozusagen den umgekehrten Fall, Url gleich Inhalt ändert sich.

    Die Möglichkeit die aspx Seite mit Parameter aufzurufen habe ich auch in Betracht gezogen jedoch wären das zwei Requests.
    Und wenn man auf manche Seiten viele Elemente (Berichte, Neuigkeiten, Nachirchten, Fotos, ggf. Video usw.) hat könnte das zu einem Performanceverlust führen. Hast du dies bzgl. Erfahrung, auch im Mobile Bereich?


    Danke im voraus und Lg
    WaZZ




    • Als Antwort markiert WaZZkeSS Montag, 9. September 2013 13:50
    Donnerstag, 5. September 2013 17:39
  • Hi,

    probier doch einfach mal bei url="~/index.aspx?Key=Tour" und bei mappedUrl="~/Tour.aspx" einzutragen.

    Die ASPX Seite mit Parameter resultiert nicht in zwei Requests. Index.aspx soll hierbei natürlich nur eine "leere" Seite ohne Inhalt sein, die lediglich für die Auswertung des Parameters und den Aufruf von Server.Transfer dient. Einen Performanceverlust sehe ich da nicht.

    Allerdings stelle ich mir immer noch die Frage, warum Du das überhaupt machen willst. Weder ist das üblich noch irgendwie sinnvoll. Im Gegenteil, es bringt eine Menge Probleme mit sich (angefangen von denen, die Du gerade feststellst bis zu der Unmöglichkeit, Seiten direkt anspringen zu können, bspw. über Lesezeichen, ...)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 5. September 2013 18:43