2011-06-09 56 views
1

我有一個ASP.NET C#項目。表單之間的ID通過列表

我必須從一個表單傳遞一個值列表(ID編號,例如「23,4455,21,2,765,...)」,因爲QueryString不可能,因爲列表可能很長,這是最好的辦法做到這一點

在此先感謝

感謝您的答案,你幫助了很多! 我決定這樣做:?

在第一種形式:

List lRecipients = new List(); ..... Session [「Recipients」] = lRecipients;

最終形式: List lRecipients =(List)Session [「Recipients」]; Session.Remove(「Recipients」);

+0

這功課嗎? – 2011-06-09 16:05:33

回答

2

您可以使用Session集合。

在第一頁,使用:

List<int> listOfInts = new List<int>(); 
... 
Session["someKey"] = listOfInts 

而在第二頁,檢索這樣的:如果你使用asp.net web表單

List<int> listOfInts = Session["someKey"] as List<int>; 
1

你可以把它變成一個會話變量來傳遞頁面之間的內容。你必須簡要說明將很多東西放入會議中的潛在性能問題。

Session["ListOfStff"] = "15,25,44.etc"; 
0

對於Asp.NET MVC,您可以使用ViewData。

ViewData [「ID」] =「」;

1

有多種方式可以傳遞這些數據。你選擇哪一個取決於你的環境。

會話狀態很有用,但受到系統上的併發用戶數和服務器上可用內存量的限制。決定是否使用會話狀態時請考慮這一點。如果您確實爲此操作選擇會話狀態,請務必在完成處理請求後刪除數據。

您可以使用一個隱藏的輸入字段,其中應用runat =「server」。這將使其數據在服務器端可用,並且只會在請求期間持續。這種技術的優點是它可以被服務器代碼和客戶端JavaScript訪問。但是,這也意味着請求的大小會增加,並且可能需要更多工作才能將數據存儲到您想要的位置(並退出)。

根據涉及多少數據,您可以實現Web服務以將數據序列化到臨時存儲介質(比如數據庫表),並取回「請求句柄」。然後,您可以將查詢字符串上的請求句柄傳遞給下一個表單,並且可以使用「句柄」從您的介質中獲取數據。

處理這種情況有各種不同的方法,但最好的選擇取決於你的環境,開發時間和成本。