簡體   English   中英

如何將字符串數組從一個ASP.NET頁發送到另一頁?

[英]How can I send an array of strings from one ASP.NET page to another?

我現在有兩個asp.net頁面。 當我單擊頁面A上的鏈接時,我打開了另一個鏈接(我們稱其為頁面B)。 當我這樣做時,我想以字符串數組的形式將某些信息從頁面A發送到頁面B。 根據我在頁面A上跟隨的鏈接,此數組有所不同。

我知道我可以通過帶有?string1 = bla1&string2 = bla2等的URL發送此信息,但是我不希望這樣,因為如果數組中的字符串過多,它將變得很復雜。

我認為有類似的東西,例如PHP中的POST,但是ASP中的情況如何呢?

任何幫助,將不勝感激。 謝謝。

干杯!

您可以只使用會話狀態。 您將在第一頁中填入這樣的內容

Page.Session["MyArray"] = new string[] {"one", "two", "three" };

然后使用以下內容檢索目標頁面中的信息:

string[] values = Page.Session["MyArray"] as string[];

編輯:

為了回應您的評論,您需要處理鏈接按鈕的OnClick事件,例如

<asp:LinkButton ID="myButton" Text="Click Me" OnClick="myButton_Click" runat="server"/>

然后在后面的代碼中,您需要如上所述設置會話狀態,例如

protected void myButton_Click(object sender, EventArgs e)
{
    Page.Session["MyArray"] = new string[] {"one", "two", "three" };
    Response.Redirect("~/AnotherPage.aspx");
}

只需發送URL中的值即可。 無論如何,這可能是最正確的方法。 指定要在頁面上顯示的內容的信息應放在URL中。 如果您不喜歡使用string1=&string2=則將它們打包成逗號分隔的字符串。

請不要為此濫用會話,除非您要傳遞大量的數據。 在這種情況下,請將它們存儲在會話中具有唯一鍵的字典中,然后將其傳遞到URL中。 這樣可以避免許多由於連接速度慢以及選項卡式瀏覽和搜尋器等問題而引起的意外問題。

您可以像這樣使用會話變量或HttpContext: http : //www.codedigest.com/Articles/ASPNET/76_HttpContext_Object_for_Developers.aspx

如果我們談論的是純鏈接(a href)標記,則除了將其放入查詢字符串外別無選擇。

如果您想破解它,可以捕獲這些鏈接的onclick事件,並將它們重定向到您自己的事件處理程序,該處理程序將組成您需要說的任何內容……一個隱藏字段,並在click事件發生時調用表單。

如果是回發,則可以按照其他答案中的建議使用Session,並重定向到另一個頁面,然后從那里選擇Session。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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