2017-02-12 158 views
1

我正在爲Visual Studio 2015中的學校項目工作。我有兩個頁面,都有一個姓氏文本框。我需要在表格1轉移到姓氏的姓氏文本框的形式2.將會話數據從一種表單傳輸到另一種表單

這裏是我有:

FORM 1:在上單擊事件的按鈕:

Session["Lname"] = TextBox2.Text; 

FORM 2:頁面加載

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

這可能是一個簡單的修復,我只是不能看到並可能需要第二套眼睛。

回答

0

你要加載在後的第二形式回來,試圖將其改爲:

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

祝學校!

+0

這2頁讀取會話是解決方案的一部分。仍然需要使用表單1的PostBackUrl屬性來形成2. –

+0

很難說出他正在嘗試做什麼,如果您使用的是舊會話,您並不需要回發url ......雖然不確定在此日子和年齡爲什麼會使用會話進行簡單的任務。 – albattran

+1

非常真實@albattran。這就是爲什麼我建議他打他的老師。 ;-) –

1

好的,這是你需要做的。下一次你在課堂上時,你的老師在面前教你編碼。認真。我會很樂意辯論他想要做的事情。

有一對夫婦的方式來解決這個問題:

  1. 把信息會議第1頁上,然後重定向。這基本上是你正在嘗試的。這種方法的問題是它使應用程序有狀態,這在某些縮放情況下可能會有問題。很難找到任何人以這種方式使用狀態,尤其是因爲使用了無狀態的ASP.NET MVC。

  2. 您可以更改表單的目標,使其提交到表單2而不是表單1.這是通過更改頁面的PostBackUrl屬性完成的。這種方法的問題是你可以輕鬆地用一個頁面來完成。除少數情況外,我認爲沒有理由這樣做。如果你想走這條路線,請檢查this page

還有其他變化。你甚至可以寫出這兩種方法,並將你的教授留下深刻印象,然後打他的臉,並告訴他這是如何在一個頁面中完成的。或者,更好的方法是,向他展示一個ASP.NET MVC版本,其中包括迄今爲止所做的所有事情,並向他展示您已進入現代化時代。 ;-)

+0

謝謝你,他讓我們使用Web表單,項目的後半部分類似於使用MVC的第一部分。他曾表示MVC是更好的方式,但我們也在學習如何使用表單。但他對MVC更加深入。 :) – CJEbe

0

首先,在第1頁,你需要確保TextBox2.Text不爲空或空

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.."; 
} 

,然後就可以像

lastName.Text = Session["Lname"].ToString(); 
相關問題