2

リストに国名を持つリストがあります。このリストは、Response.Redirect(page) のパラメーターの 1 つとして送信する必要があります。

受信ページで、クエリ文字列を List にキャストして使用できるように、これを行う簡単な方法はありますか。

ありがとう、スリラム

4

4 に答える 4

8

私はあなたがこれを行うことができると思います。ただし、データベースからのリストである場合は、改訂ページで関数を再度呼び出した方がよいでしょう。それ以外の場合は、次のような汚いソリューションを実行する必要があります。

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

于 2012-05-07T08:43:59.390 に答える
1

リストから文字列を送信する

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

クエリ文字列を取得する

string str = Request.QueryString["CountryList"];
    string[] arr = str.Split(',');
    TargetArrayList = arr.ToList();
于 2012-05-07T09:05:05.833 に答える
0

国のリストの大きさによって異なります。私は通常Session["CountriesNames"] as List<string>、asp.net WebフォームのWebページ間でそのような値を渡すために使用します。

于 2012-05-07T08:38:37.337 に答える