同名大小写不同的字符串参数被解析为一个字符串参数,并以逗号分隔

问题描述 投票:0回答:1

在Javascript请求中,我添加了两个名称相同但大小写不同的参数

  1. *.setPostDataItem("FluentSearch", scope.search); (abc)
  2. *.setPostDataItem("fluentSearch", scope.search); (abc)

我的服务器端代码控制器->操作将其解析为

string FluentSearch = abc, abc

因此,在服务器参数中,我们有一个字符串参数,由逗号分隔重复值。

我希望服务器应该解析请求并编写不带逗号的请求。

ASP.NET MVC 在哪里以及为什么用逗号预先处理相同的参数两次?是之前的具体动作执行者吗?

c# .net asp.net-mvc routes action
1个回答
0
投票

据我所知,客户端似乎正在发送两个不同的参数,但服务器将它们视为一个,将它们组合为 csv。

看这个答案 https://stackoverflow.com/a/32127030/1384239

摘录自答案

这东西是否是完全由权威机构决定 区分大小写。

对于 C# 和 IIS,解析查询的后备存储 HttpRequest 对象中的字符串是 System.Collections.Specialized.NameValueCollection 恰好是 不区分大小写(默认情况下)。

现在看看名称值集合它特别指出了

哈希码提供者为密钥中的键分配哈希码 名称值集合。默认的哈希码提供程序是 CaseInsensitiveHashCodeProvider。

所以看来可以改成区分大小写。我没有尝试过。你可以尝试一下。对于查询字符串参数,此行为应该相同。

© www.soinside.com 2019 - 2024. All rights reserved.