将分隔的List作为QueryString值传递

时间:2010-06-29 03:29:22

标签: asp.net

之前我没有必要这样做,但我想在ASP.NET中为查询字符串值发送一个ID列表:

?ListOfIDs=1234;3224;&SecondParam=somevalue&ThirdParam=....

我认为你不能加;还是逗号吧?我真的找不到一个很好的参考来讨论你能够或不能通过网址传递的内容。

1 个答案:

答案 0 :(得分:0)

没有比规范更好的权威!根据定义,它总是正确的。

根据规范(RFC 3986- http://tools.ietf.org/html/rfc3986#section-3.4),查询字符串定义为: query = (pchar /“/”/“?”) pchar = unreserved / pct-encoded / sub-delims /“:”/“@” unreserved = ALPHA / DIGIT /“ - ”/“。” /“_”/“〜” sub-delims =“!” /“$”/“&” /“'”/“(”/“)”/“”/“+”/“,”/“;” /“=”

一旦你把所有这些拼凑起来,你就可以得到你问题的答案: 是的,逗号或分号是完全没问题的(它们是次级的)。

查询字符串本身在URI的末尾或#字符处结束(如果存在URI片段): URI = scheme“:”hier-part [“?”查询] [“#”片段]

对于您的Web框架在解析查询字符串时理解的内容,这是另一回事!也许其他人对.NET如何在查询字符串中传递数组有答案?