ASP.Net Querystring - 多个值

时间:2016-05-04 13:22:06

标签: asp.net vb.net request.querystring

是否可以将多个值传递给单个Querystring参数?这就是我的想法:

index.aspx=?loc=wi&loc=mi&loc=mn

for i = 1 to request.querystring("loc").count
    'do some stuff here
next i

这样的事情。我相信我可以通过其他方式传递它们并可能爆炸内部内容(抱歉 - 分裂会更好.net术语)。但我宁愿这样做,我可以通过类似的代码轻松提取:

:accessToken

2 个答案:

答案 0 :(得分:0)

试试这个

    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);

答案 1 :(得分:0)

您可以在它们之间使用分隔符传递多个值。

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。

如果您传递的值包含您用作分隔符的字符,则需要小心谨慎。因为看起来你只是传递州缩写,所以在这个特定的例子中你应该是安全的。