You can pass multiple values by using a separator between them.
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)
On the receiving end, you can then split them back out.
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
Note, I'm a C# programmer, so I used an automatic code converter to convert it to VB. Results may not be idiomatic valid VB.
Careful care would need to be taken if the value you're passing would contain the character you're using as a delimiter. Since it appears you're just passing state abbreviations, you should be safe in this particular instance.