2012-05-07 42 views
2

我有列表中有國家名稱的列表中。此列表需要作爲Response.Redirect(頁面)中的一個參數發送。通過列表<T>作爲查詢字符串

是否有直接的方法來做到這一點,以便在接收頁面中,我可以將查詢字符串類型轉換爲List並使用它。

感謝, 斯利拉姆

回答

6

我認爲你可以做到這一點。但是,如果來自數據庫的列表更好地在修訂頁面上再次調用該函數。否則,你必須做這樣一個骯髒的解決方案:

List<string> ls=new List<string>{"Sweden","USA"}; 
Response.Redirect("page.aspx?CountryList="+string.Join(",",ls)); 

且審裁頁面上做到這一點:

List<string> ls= QueryString["CountryList"].Split(',').ToList(); 

但記得有你如何能大派的查詢字符串的限制。所以如果列表包含很多項目,那麼你可能會達到上限。

,或者存儲在會話:

Session["CountryList"]=ls; 

然後在修訂頁面上。這樣做:

List<string> ls=(List<string>)Session["CountryList"]; 
Session.Remove("CountryList"); 

記住removesession當你用它做。所以,你不必在session

+0

它真的幫助我,謝謝 –

0

取決於您所在的國家名單有多大。 我通常使用Session["CountriesNames"] as List<string>在asp.net webforms的網頁之間傳遞這樣的值。

0

髒值從發送列表

Response.Redirect("page.aspx?CountryList=" + string.Join(",", (string[])TargetArrayList.ToArray())); 

字符串獲得查詢字符串

string str = Request.QueryString["CountryList"]; 
    string[] arr = str.Split(','); 
    TargetArrayList = arr.ToList(); 
相關問題