簡體   English   中英

如何將字符串從一個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);

如果您不想使頁面切換透明,將保留第一頁的表單值

另一種選擇是跨頁回發。

http://msdn.microsoft.com/en-us/library/ms178139.aspx

我強烈敦促您僅在絕對必要時才使用會話,這會占用寶貴的服務器資源。

使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM