2

我有一个列表中包含国家名称的列表。并且这个列表需要作为 Response.Redirect(page) 中的参数之一发送。

有没有一种直接的方法可以做到这一点,以便在接收页面中,我可以将查询字符串类型转换为 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

从 List 发送字符串

 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 回答
1

更好地使用标准格式...不是吗?

string queryString = "?country=" + string.Join("&country=", yourList);
于 2019-05-07T07:39:12.520 回答
0

取决于您的国家/地区列表有多大。我通常用来Session["CountriesNames"] as List<string>在 asp.net webforms 的网页之间传递这些值。

于 2012-05-07T08:38:37.337 回答