我在列表中有一个包含国家/地区名称的列表。此列表需要作为Response.Redirect(页面)中的参数之一发送。
是否有直接的方法来执行此操作,以便在接收页面中,我可以将查询字符串输入到List并使用它。
谢谢, 斯利拉姆
答案 0 :(得分:7)
我认为你可以做到这一点。但是如果是从数据库中提交的列表,则在修改页面上再次调用该函数。否则你必须做一个像这样的脏解决方案:
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
答案 1 :(得分:1)
从List
发送字符串 Response.Redirect("page.aspx?CountryList=" + string.Join(",", (string[])TargetArrayList.ToArray()));
获取QueryString
string str = Request.QueryString["CountryList"];
string[] arr = str.Split(',');
TargetArrayList = arr.ToList();
答案 2 :(得分:0)
取决于您的国家/地区列表的大小。
我通常使用Session["CountriesNames"] as List<string>
在asp.net webforms中的网页之间传递这些值。
答案 3 :(得分:0)
更好地使用标准格式...否?
string queryString = "?country=" + string.Join("&country=", yourList);