2009-01-27 96 views

回答

11

您可以在查詢字符串中執行此操作。在第一頁:

Response.Redirect("Second.aspx?book=codecomplete"); 

,並在第二頁上

string book = Request["book"]; 

此方法將允許用戶看到你傳遞什麼到第二個頁面。或者,您可以將其放置在會話對象中。要將其放在使用:

Session["book"] = "codecomplete"; 

,並把它找回來使用:

string book = Session["book"] as string; 

作爲第三種方法,你可以使用Server.Transfer的。如果您想要轉到服務器端的第二頁,請使用此方法。但請注意,您的用戶將繼續在地址欄上看到第一頁的網址。

在第1頁:

this.SomeProperty = "codecomplete"; 
Server.Transfer("SecondPage.aspx"); 

在第2頁:

string book = (PreviousPage as Page1).SomeProperty; 
+0

+1具體示例簡明回答。做得好。 – GregD 2009-01-27 15:18:38

2

您可以使用querystring發送它,也可以定義會話變量以存儲它。

最好的選擇取決於你想用什麼字符串。

1

查詢字符串

Response.Redirect(page.aspx?val=whatever); 
在page.aspx

THEN

string myval = Request["whatever"] 

OR

Server.Transfer("page.aspx", true); 

,如果你想不使開關從第一頁持之以恆表單值透明頁面

0

我強烈建議你使用只有在絕對neccessery,花費寶貴的服務器資源的會話。

使用QueryString,使用它非常簡單,你只需添加一個「?」在aspx之後並寫入想要傳遞的值,例如:

page.aspx?val = this_is_a_value_passed_to_this_page。

在page.aspx中,您讀取查詢字符串值,如下所示: string val = Request.QueryString [「val」]; 響應。寫(VAL);

,這將產生以下反應: this_is_a_value_passed_to_this_page

更復雜的解釋可以在這裏找到: http://aspnet.4guysfromrolla.com/articles/020205-1.aspx

0

使用查詢字符串參數或會話變量。

請記住,在接收頁面上檢查請求或會話對象時,應該確保該值不爲空,然後嘗試使用它來避免意外錯誤。

if (Session["VariableName"] != null) { 
    string varName = Session["VariableName"].ToString(); 
    // use varName 
} 

或者

string varName = (Session["VariableName"] ?? "").ToString(); 

同樣,如果你傳遞一個數值,確保它是鑄造或轉換和使用它之前,正確的數據類型。

if (Session["IDValue"] != null) { 
    string idVlaueString= Session["IDValue"].ToString(); 
    int idValue = 0; 
    bool isInt = int.TryParse(idValueString, out idValue); 
    if (isInt) { 
    // use idValue 
    } 
} 
0

如果您只希望變量持續在另一頁的那個調用中,我建議使用上下文。

在第一頁中使用:

Context.Items.Add("varName", varData); 

,然後在所謂的頁面使用:

Context.Items("varName") 

閱讀這篇文章,以瞭解更多信息:http://steveorr.net/articles/PassData.aspx

0

退房聯盟的文章標題爲"Passing Data the .NET way",顯示如何完成此操作。這個解決方案最好的部分是它不使用用戶可以看到的任何查詢字符串變量,也不需要您將其置於會話狀態。

這樣做的缺點是:

在第一頁(Default.aspx的)創建一個隱藏的文本框(txtMessage):

<asp:TextBox ID="txtMessage" runat="server" Visible="False" Text="" /> 

然後在後面的代碼添加一個方法:

Public ReadOnly Property MessageForwarded() As String 
    Get 
     Return txtMessage.Text 
    End Get 
End Property 

最後,您可以動態設置隱藏的文本框的值

txtMessage.text = "Hello there" 

在第二頁上添加一個參考:

<%@ Reference Page="Default.aspx" %> 

,然後使用語法從第一頁加載數據:

Dim objSource As Source = CType(Context.Handler, Source) 
If Not (objSource Is Nothing) Then 
    Response.Write(objSource.MessageForwarded) 
End If 

我一直在使用了一段時間,沒有任何問題。

0

查詢字符串是傳遞字符串值的好方法。 檢查該解決方案,並嘗試

response.redirect("link to your redirect page.aspx?userName="+string+""); 

這裏用戶名是給你想在另一個頁面獲得字符串名稱。

而字符串是您傳遞到下一頁的字符串。

然後得到該字符串後面使用

string str = Request.QueryString["userName"]; 

這是獲取字符串值的ESAY方式。

相關問題