是否可以将多个值传递给单个Querystring参数?以下是我的想法:
index.aspx?loc=wi&mi&mn
或
index.aspx=?loc=wi&loc=mi&loc=mn
类似的东西。我确信我可以通过其他方式传递它们,并可能爆发内部内容(对不起,拆分会更好。net term)。但我宁愿用一种我可以通过类似于以下代码轻松提取的方式来做这件事:
for i = 1 to request.querystring("loc").count
'do some stuff here
next i
您可以通过在多个值之间使用分隔符来传递它们。
C#
var locations = new List<string> { "wi", "mi", "mn" };
var locationsCommaSeparated = string.Join(",", files);
Response.Redirect("index.aspx?loc=" + locationsCommaSeparated);
VB
Dim locations = New List(Of String)() From { _
"wi", _
"mi", _
"mn" _
}
Dim locationsCommaSeparated = String.Join(",", files)
Response.Redirect("index.aspx?loc=" + locationsCommaSeparated)
在接收端,您可以将它们分开。
C#
var locationsCommaSeparated = Request.QueryString["loc"].ToString();
var locations = locationsCommaSeparated.Split(',');
foreach(var location in locations)
{
//do something
}
VB
Dim locationsCommaSeparated = Request.QueryString("loc").ToString()
Dim locations = locationsCommaSeparated.Split(","C)
For Each location As var In locations
'do something
Next
注意,我是一名C#程序员,所以我使用了一个自动代码转换器将其转换为VB。结果可能不是惯用的有效VB.
如果您传递的值包含用作分隔符的字符,则需要小心。由于您似乎只是在传递州缩写,因此在这种特定情况下应该是安全的。
试试这个
ArrayList arr = new ArrayList();
arr.Add(“file1″);
arr.Add(“file2″);
arr.Add(“file3″);
string arry = String.Join(“,”, ((string[])arr.ToArray(typeof(String))));
Response.Redirect(“index.aspx?file=” + arry);