[英]I want to transfer the label output from one page to another page in aspx/aspx.cs
[英]How do I bring a string from one aspx.cs page to another?
我想使用一個aspx.cs文件中一直使用的字符串。 我知道這很容易,但是我該怎么做呢?
您可以在查詢字符串中執行此操作。 在您的首頁上:
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;
您可以使用查詢字符串發送它,也可以定義一個會話變量來存儲它。
最佳選擇取決於您要使用該字符串的用途。
請求參數
Response.Redirect(page.aspx?val=whatever);
然后在page.aspx中
string myval = Request["whatever"]
要么
Server.Transfer("page.aspx", true);
如果您不想使頁面切換透明,將保留第一頁的表單值
我強烈敦促您僅在絕對必要時才使用會話,這會占用寶貴的服務器資源。
使用QueryString,使用起來非常簡單,您只需添加“?” 在aspx之后並輸入要傳遞的值,例如:
page.aspx?val = this_is_a_value_passed_to_this_page。
在page.aspx中時,您將讀取如下查詢字符串值:string val = Request.QueryString [“ val”]; Response.Write(val);
這將生成以下響應:this_is_a_value_passed_to_this_page
可以在這里找到更復雜的解釋: http : //aspnet.4guysfromrolla.com/articles/020205-1.aspx
使用QueryString參數或Session變量。
請記住,在接收頁面上,當檢查Request或Session對象時,應確保該值不為null,然后再嘗試使用該值以避免意外錯誤。
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
}
}
如果只希望變量在該調用中持續到另一個頁面,則建議使用Context。
在第一頁中使用:
Context.Items.Add("varName", varData);
然后在被調用頁面上使用:
Context.Items("varName")
閱讀本文以獲取更多信息: http : //steveorr.net/articles/PassData.aspx
查看關於Alliance的文章“以.NET方式傳遞數據” ,該文章顯示了如何實現此目的。 此解決方案的最好之處在於,它不使用用戶可以看到的任何查詢字符串變量,也不需要您將其置於會話狀態。
它的簡稱是:
在第一頁(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
我已經使用了一段時間了,沒有任何問題。
查詢字符串是傳遞字符串值的好方法。 檢查此解決方案並嘗試
response.redirect("link to your redirect page.aspx?userName="+string+"");
這里的userName是您要在另一個頁面中獲取的字符串的名稱。
字符串是您要傳遞到下一頁的字符串。
然后使用返回該字符串
string str = Request.QueryString["userName"];
這是獲取字符串值的簡單方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.