ASP.Net 查询字符串 - 多个值

ASP.Net Querystring - Multiple values

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

index.aspx?loc=wi&mi&mn

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

类似的东西。我确信我可以通过其他方式传递它们并可能分解内部内容(抱歉 - 拆分会更好 .net 术语)。但我宁愿以一种我可以通过类似于此的代码轻松提取的方式来执行此操作:

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

试试这个

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

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

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.

如果您传递的值包含您用作分隔符的字符,则需要格外小心。由于您似乎只是在传递州缩写,因此在此特定情况下您应该是安全的。