2017-02-12 3 views
1

Ich arbeite an einem Projekt für die Schule in Visual Studio 2015. Ich habe zwei Seiten, beide haben einen Nachnamen Textfeld. Ich brauche 2.Sitzungsdaten von einem Formular in ein anderes übertragen

hier den Nachnamen auf Form 1 zum Nachnamen Textbox auf dem Formular übertragen ist, was ich habe:

FORM 1: Unter dem Button auf Click-Ereignisse:

Session["Lname"] = TextBox2.Text; 

FORM 2: Seite laden

if (IsPostBack) 
{ 
    lastName.Text = (string)Session["Lname"]; 
} 

Es ist wahrscheinlich eine einfache Lösung, dass ich einfach nicht sehen und brauchen vielleicht noch ein zweites Auge.

Antwort

0

Sie versuchen die zweite Form auf Post zurück zu laden, versuchen, es zu ändern:

mit Schule
if (!IsPostBack) { lastName.Text = (string)Session["Lname"]; } 

Viel Glück!

+0

dieses lesen ist Teil der Lösung. Immer noch müssen PostBackUrl -Eigenschaft von Formular 1 zu bilden 2. –

+0

Es ist schwer zu sagen, was er zu tun versucht, wenn Sie die guten alten Sitzungen verwenden Sie nicht wirklich Postback URL ... obwohl nicht sicher in diesem Tag und Alter warum sollte man Sitzungen für einfache Aufgaben verwenden. – albattran

+1

Sehr wahr @albattran. Deshalb schlug ich vor, dass er seinen Lehrer schlug. ;-) –

1

Okay, hier ist, was Sie tun müssen. Wenn Sie das nächste Mal im Unterricht sind, schlagen Sie Ihrem Lehrer ins Gesicht, weil er Ihnen beibringt, so zu programmieren. Ernst. Ich wäre mehr als glücklich darüber zu debattieren, was er zu tun versucht.

Es gibt ein paar Möglichkeiten, dieses Problem zu lösen:

  1. Legen Sie die Informationen in der Sitzung auf Seite 1 und dann umleiten. Das ist im Grunde, was Sie versuchen. Das Problem bei dieser Methodik ist, dass die Anwendung statusbehaftet ist, was in einigen Skalierungssituationen problematisch sein kann. Es ist schwierig, jemanden zu finden, der vorschlägt, den Status auf diese Weise zu verwenden, insbesondere da ASP.NET MVC, das zustandslos ist, verwendet wird.

  2. Sie können das Ziel des Formulars so ändern, dass es Formular 2 statt Formular 1 übermittelt. Dies geschieht durch Ändern der PostBackUrl -Eigenschaft der Seite. Das Problem mit dieser Methode ist, dass Sie es genauso leicht mit einer Seite machen können. Außer in einigen Fällen sehe ich keinen Grund, dies zu tun. Wenn Sie diesen Weg gehen möchten, überprüfen Sie this page heraus.

Es gibt andere Variationen. Sie könnten sogar beide dieser Methoden schreiben und die Scheiße aus Ihrem prof beeindrucken, und dann schlagen Sie ihm ins Gesicht und zeigen ihm, wie das auf einer einzigen Seite gemacht wird. Oder, besser noch, zeigen Sie ihm eine ASP.NET MVC-Version über alles, was Sie bisher getan haben und zeigen Sie ihm, dass Sie in die Moderne eingetreten sind. ;-)

+0

Danke, er hat uns die Webformulare verwendet und die zweite Hälfte des Projekts ist ähnlich wie bei der ersten Verwendung von MVC. Er hat gesagt, dass MVC der bessere Weg ist, aber wir lernen auch, Formulare zu verwenden. Aber er ist mehr auf der MVC gegangen. :) – CJEbe

0

vor allem auf Seite 1 Sie müssen sicherstellen, dass TextBox2.Text nicht null oder leer

if(TextBox2.Text != "" && TextBox2.Text != null) 
{ 
    Session["Lname"] = TextBox2.Text; 
} 
else 
{ 
// just for test in case TextBox2.Text is null, 
    Session["Lname"] = "it is null.."; 
} 

und dann können Sie Session in Seite 2 wie

lastName.Text = Session["Lname"].ToString(); 
Verwandte Themen