Frage

Angenommen, ich habe zwei Textfelder auf einer Seite, eine für den Namen und eine für das Alter.

Wenn ich auf die Schaltfläche Senden klicke, sollten diese Werte auf einer anderen Seite angezeigt werden. Kann jemand das Beispiel dafür geben? Ich bin total verwirrt.

Bitte helfen Sie mir, danke

War es hilfreich?

Lösung

MSDN hat eine Seite dazu, Wie man: Werte zwischen ASP.NET -Webseiten übergeben:

Die folgenden Optionen sind auch dann verfügbar, wenn sich die Quellseite in einer anderen ASP.NET -Webanwendung über die Zielseite befindet oder wenn die Quellseite keine ASP.NET -Webseite ist:

  • Verwenden Sie eine Abfragezeichenfolge.
  • Holen Sie sich HTTP -Postinformationen von der Quellseite.

Die folgenden Optionen sind nur verfügbar, wenn sich die Quell- und Zielseiten in derselben ASP.NET -Webanwendung befinden.

  • Verwenden Sie den Sitzungszustand.
  • Erstellen Sie öffentliche Eigenschaften auf der Quellseite und greifen Sie auf die Eigenschaftswerte auf der Zielseite zu.
  • Rufen Sie Steuerinformationen auf der Zielseite von Steuerelementen auf der Quellseite ab.

Für Ihr Szenario klingt es so, als ob die Verwendung von Post der richtige Weg ist, da Sie Textboxen auf der ersten Seite haben. Beispiel:

Erste Seite:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication2.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>Page 1</title>
</head>
<body>
  <form id="form1" runat="server" action="WebForm2.aspx">
  <div>
    Name: <asp:TextBox ID="tbName" runat="server"></asp:TextBox><br />
    Age: <asp:TextBox ID="tbAge" runat="server"></asp:TextBox><br />
    <asp:Button ID="submit" runat="server" Text="Go!" />
  </div>
  </form>
</body>
</html>

Beachten Sie die action="WebForm2.aspx" Dies lenkt den Beitrag auf die zweite Seite. Es gibt keinen Code.

Seite 2 (Empfangsseite):

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm2.aspx.vb" Inherits="WebApplication2.WebForm2" EnableViewStateMac="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Page 2</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:Literal ID="litText" runat="server"></asp:Literal>
    </form>
</body>
</html>

Beachten Sie die EnableViewStateMac="false" Attribut auf dem Seitenelement. Es ist wichtig.

Die Code-Behind, die die Werte mit einem einfachen Anstieg greifen Request.Form():

Public Class WebForm2
  Inherits System.Web.UI.Page

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    litText.Text = Request.Form("tbName") & ": " & Request.Form("tbAge")
  End Sub
End Class

Das sollte funktionieren... :)

Andere Tipps

Setzen Sie diesen Code an Ihren Event -Handler der Subay -Schaltfläche.

private void btnsubmit_click (Objektabsender, System.EventArgs e) {response.redirect ("otherPage.aspx? name =" + this.txtname.text + "& ay" + this.txtage.text); }

Setzen Sie diesen Code auf die zweite Seite page_load,

private void page_load (Objektabsender, System.EventArgs e) {this.txtBox1.text = Request.queryString ["Name"]; this.txtbox2.text = request.queryString ["ay"]; }

Sie haben ein paar Optionen. **

1. Verwenden Sie die Abfragebarstellung.


(Cons)
  - Text might be too lengthy 
  - You might have to encrypt/decrypt query string based on your requirement 
(Pros)
  - Easy to manage

2. Session verwenden

(Cons)
  - May increase processing load on server
  - You have to check and clear the session if there are too many transactions
(Pros) 
  - Values from different pages, methods can be stored once in the session and retrieved from when needed
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top