Announcement

Collapse
No announcement yet.

Nächste Seite aufrufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nächste Seite aufrufen

    Hallo Leute,
    ich bin wie so oft mit meinem Latein am Ende und könnte bei folgendem Problem ein wenig Hilfe gebrauchen.

    Ich erstelle gerade eine ASP.Net-Webanwendung mit C# und bin nun an dem Punkt, bei an dem ich bei einem try/Catch Exception Abfang eine neue Seite, also eine andere aspx-Seite öffnen muss. Allerdings habe ich keine ahnung wie sowas geht.
    Ich habe mich bereits durch Google gekämpft, Beispiele getestet aber die angeblichen Lösungen wurden einfach nur rot unterstrichen und als "not found" angekreidet.

    Kann mir also jemand eine Beispiellösung für mein Problem geben?
    Ich wäre wirklich dankbar, da das Projekt so langsam in die Endphase läuft.

    Danke vorweg
    F60.2

  • #2
    Das geht per Redirect. Schau mal hier:

    http://www.it-visions.de/dotnet/aspn...sTransfer.aspx

    In Deinem Fall macht wahrscheinlich Server.Transfer mehr Sinn, da das ja praktisch Logik in Deiner Anwendung ist. Response.Redirect() macht man eher bei Seiten die nicht mehr verfügbar sind und umgeleitet werden sollen. So zumindest mein Verständnis.

    Noch einen sehr guten Link gefunden:
    http://www.developer.com/net/asp/art...seRedirect.htm

    Da werden die Unterschiede noch deutlicher herausgearbeitet
    Zuletzt editiert von fanderlf; 02.08.2011, 08:27.

    Comment


    • #3
      hmm...
      Auf den Seiten war ich auch schon 2mal, aber bei mir sagt er bei Server, sowie bei Response:
      "The name '...' does not exist in the current context"

      Warum taucht das da auf und bei einem Kollegen, der etwas ähnliches programmiert hat funktioniert alles, obwohl die vorgehensweise die selbe war?
      hab ich i-wo etwas vergessen?

      Comment


      • #4
        Hm zeig doch mal etwas Code. Z.B. die Funktion in der das passiert. Sonst kann ich nicht wissen ob Du was vergessen hast

        Wenn man Deine Fehlermeldung bei Google eingibt kommt das meist in Zusammenhang mit Controls die nicht als runat="server" getagged sind und deswegen im Quellcode nicht gefunden. Ab und zu hilft auch neuspeichern des .aspx files, damit das asps.designer.cs neu generiert wird.
        Zuletzt editiert von fanderlf; 02.08.2011, 09:35.

        Comment


        • #5
          Viel zu zeigen gibt es da nicht.

          die Funktion steht halt nur in einer .cs Datei, daher ist das mit dem aspx abspeichern bissel schlecht, aber stimmt, bei meinem kollegen ist es eine aspx seite wo der code steht.

          Innerhalb einer normalen static void Methode soll am ende halt diese Seite mit einer eventuellen miss/erfolgs-meldung auftauchen...

          Comment


          • #6
            ok, das mit dem in die .cs-Datei schreiben vergessen wir mal schnell wieder, da funktioniert Server.Transfer etc nicht.

            jetzt bin ich so weit, das sich die andere Seite öffnet, do wie übergebe ich einen int und string wert an die neue seite???

            Comment


            • #7
              Per URL Parameter z.B.. Bei Server.Transfer() kann man sich das evtl. auch auf dem Server merken. Auch die Session geht, allerdings würde ich davon eher abraten wenn es eine andere Möglichkeit gibt.
              Die ganz normalen Möglichkeiten eben eine Seite im Web aufzurufen. Schau Dir mal HTTP GET und POST an.

              Comment


              • #8
                Ich habe das Problem jetzt so gelöst, das ich in einer GrunddatenDatei die Werte gespeichte habe und am Ende per Response.Redirect die Daten als QUerystring übergeben, funktioniert supi ^^

                Bsp.:
                Code:
                string name = Funktions.Funktions.nameSaver;
                string nachname = Funktions.Funktions.nachnameSaver;
                Response.Redirect("/Message/Output.aspx" + "?name=" + this.nameSaver + "&nachname=" + this.nachnameSaver);
                
                ---
                
                //***Zielseite:
                public string nameEnd = "";
                public string nachnameEnd = "";
                protected void Page_Load(object sender, EventArgs e)
                {
                            this.nameEnd = Request["name"].ToString();
                            this.nachnameEnd = Request["nachname"].ToString();
                ...
                }

                Comment


                • #9
                  Ich könnte mir vorstellen dass es vielleicht noch einen eleganteren Weg gibt die URL zusammen zu bauen, aber für die Lösung gehts auch so noch. Aber ansonsten siehts gut aus.

                  Danke fürs Posten der Lösung

                  Comment


                  • #10
                    Dem ist aus so ^^
                    Habe nun doch noch eine schönere Variante gefunden:

                    Code:
                    // funktions.cs
                    ...
                    public string nameSaver;
                    public stringnachnameSaver;
                    ...
                    
                    --------------
                    // Seite1.aspx.cs
                    ...
                    Funktions.nameSaver = "Hans";
                    Funktions.nachnameSaver = "Müller";
                    
                    Response.Redirect("/Message/Output.aspx");
                    
                    --------------
                    
                    // Zielseite: Seite2.aspx.cs
                    ...
                    public string nameEnd = "";
                    public string nachnameEnd = "";
                    
                    protected void Page_Load(object sender, EventArgs e)
                    {
                                this.nameEnd = Funktions.nameSaver;
                                this.nachnameEnd = Funktions.nachnameSaver;
                    }
                    Das ich da nicht gleich drauf gekommen bin zeugt schon fast von schwäche

                    Comment

                    Working...
                    X