相同的请求参数几次导致逗号分开的字符串



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

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

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

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

这是正常行为吗?是否有任何服务器端设置或适当的编码方式来消除此行为并仅获取第一个值并删除所有其他参数?通过解散,我的意思是从查询字符串中"清洁"所有其他URL参数(我发现不能这么轻松地完成此操作)。

如果您确定自己始终想使用第一个参数并使用en,那么您也可以执行此操作

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

这将返回EN

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

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

最新更新