【发布时间】:2021-08-11 12:17:10
【问题描述】:
当参数名称相同且该参数的值包含逗号时,尝试询问查询字符串的值时,我在 ASP.Net 中遇到问题。
例如,假设我有一个如下所示的 URL...
https://example.com/mypage.aspx?val=red%2cblue&val=black%2cwhite
如您所见,这个 URL 有 2 个查询字符串参数,都称为“val”,每个参数的值都有经过 URL 编码的逗号,但是当我在 c# 中查询查询字符串参数“val”时,我得到一个4 个独立项目(红色、蓝色、黑色和白色)的数组,而我实际需要的是 2 个值(“红色、蓝色”和“黑色、白色”)
在读取 C# 中的值时,似乎 URL 编码被“有效地”解码,这反过来又导致了我无法准确定义参数值的问题。我通常会读取查询字符串参数,并在逗号上执行拆分,但这种方法对我不起作用。
更复杂的是,我无法知道我的值中可以出现多少个逗号,或者包含多少个值。例如,可以返回以下所有 URL...
https://example.com/mypage.aspx
https://example.com/mypage.aspx?val=red%2cblue
https://example.com/mypage.aspx?val=red%2cblue&val=black%2cwhite&val=red%2cblue%2cgreen
https://example.com/mypage.aspx?val=red%2cblue&val=black%2cwhite&val=yellow
在 C# 中有没有一种简单的方法来正确解释查询字符串值?
【问题讨论】:
-
你如何读取这些值?
标签: c# asp.net request.querystring