多次使用相同的请求参数会产生逗号分隔的字符串?

时间:2017-12-07 14:55:12

标签: c# html asp.net

多次在URL中传递相同的请求参数时:

mypage?lang=en&lang=co&lang=he

在服务器端查看时,似乎它被翻译为逗号分隔的字符串:

string Lang = Request.Params["lang"];
// Lang = "en,co,he"

这是正常行为吗?是否有任何服务器端设置或正确的编码方式来消除此行为并获得第一个值并关闭所有其他参数?通过解雇,我的意思是“清理”查询字符串中的所有其他URL参数(我发现这不能轻易完成)。

2 个答案:

答案 0 :(得分:1)

这是正常行为,因为param键必须是唯一的。 当您使用相同的键放置多个参数时,不是抛出异常,而是返回一个数组。你应该只使用:

 var langParams =  Request.Params["lang"].Split(',');
 if(langParams.Length > 0
 {
     var firstlangParam = langParams[0];
     //do your staff....
 }

答案 1 :(得分:1)

如果你确定你总是想要使用第一个参数并使用en那么你也可以这样做

var langParams =  Request.Params["lang"].Split(
                  new string[] {","},
                  StringSplitOptions.None)[0]; 

这将返回