我有一个列表中包含国家名称的列表。并且这个列表需要作为 Response.Redirect(page) 中的参数之一发送。
有没有一种直接的方法可以做到这一点,以便在接收页面中,我可以将查询字符串类型转换为 List 并使用它。
谢谢,斯里拉姆
我有一个列表中包含国家名称的列表。并且这个列表需要作为 Response.Redirect(page) 中的参数之一发送。
有没有一种直接的方法可以做到这一点,以便在接收页面中,我可以将查询字符串类型转换为 List 并使用它。
谢谢,斯里拉姆
我认为你可以做到这一点。但如果是来自数据库的列表,最好在修改页面上再次调用该函数。否则,您必须执行如下肮脏的解决方案:
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");
记住remove
当session
你完成它时。所以你没有脏值session
从 List 发送字符串
Response.Redirect("page.aspx?CountryList=" + string.Join(",", (string[])TargetArrayList.ToArray()));
获取查询字符串
string str = Request.QueryString["CountryList"];
string[] arr = str.Split(',');
TargetArrayList = arr.ToList();
更好地使用标准格式...不是吗?
string queryString = "?country=" + string.Join("&country=", yourList);
取决于您的国家/地区列表有多大。我通常用来Session["CountriesNames"] as List<string>
在 asp.net webforms 的网页之间传递这些值。