2011-04-07 77 views
1

我有兩個ASP.NET網頁(Page1.aspx和Page2.aspx),Page1.aspx包含幾個TextBox控件和一個Button控件。Response.Redirect,從目標頁面訪問源頁面數據

點擊事件按鈕控制我重定向用戶到Page2.aspx使用Response.Redirect方法。

如何從目標頁面(Page2.aspx)訪問源頁面數據(Page1.aspx中的TextBox值)。

我不想使用跨網頁提交或Server.Transfer方法

謝謝。

回答

2

您將需要在某處保存該數據。 Response.Redirect的工作方式是告訴客戶端(Web瀏覽器)爲指定的資源發出新的請求。這基本上意味着舊資源被放棄。把客戶做出的每一個請求看作是獨一無二的。

保存這些值的簡單方法是在致電Response.Redirect之前將它們存儲在Session statePage1中。然後,在Page2中,您可以從會話狀態中檢索這些值。

喜歡的東西:

第1頁

//... 
Session["SomeValue"] = TextBox1.Text; 
Session["SomeOtherValue"] = DropDownList1.SelectedIndex; 
//... 
Response.Redirect("Page2.aspx"); 

第2頁

//... 
// Note: The following can have some additional type checking and input/value checking added 
var someValue = Session["SomeValue"]; 
var someOtherValue = Session["SomeOtherValue"]; 
//... 
+0

感謝您的回覆大衛,這意味着會話對象是,如果我們使用Response.Redirect的唯一途徑,有沒有其他辦法? – 2011-04-07 18:57:13

+0

@Faizal Balsania:好的,你可以堅持在很多地方,技術上...在重定向,會話狀態,應用程序狀態,本地數據庫,數據庫服務器,文件等查詢字符串值。會話狀態是一個非常普遍的地方堅持下去。真的,哪個地方最適合你是一個設計問題。查詢字符串變量將非常RESTful和乾淨,但使URL長和醜,並可能顯示用戶超過你想要的。 – David 2011-04-07 21:01:13

1

嘗試使用會話變量

在第1頁

Session["field1"] = textbox1.Text; 
頁面

2個

string page1text = Session["field1"]; 
+0

謝謝卡邁勒。 :d – 2011-04-07 19:00:45