C# 使用逗号分隔将大小写不同的同名字符串参数解析为一个字符串参数

C# 使用逗号分隔将大小写不同的同名字符串参数解析为一个字符串参数,c#,.net,asp.net-mvc,routing,action,C#,.net,Asp.net Mvc,Routing,Action,在javascript请求中,我添加了两个名称相同但大小写不同的参数 *.setPostDataItem(“FluentSearch”,scope.search);(abc) *.setPostDataItem(“fluentSearch”,scope.search);(abc) 我的服务器端代码控制器->操作将其解析为 string FluentSearch = abc, abc 因此,在服务器参数中,我们至少有一个字符串参数以逗号分隔重复值 我希望服务器应该解析请求并编写不带逗号的请求。

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

  • *.setPostDataItem(“FluentSearch”,scope.search);(abc)
  • *.setPostDataItem(“fluentSearch”,scope.search);(abc)
  • 我的服务器端代码控制器->操作将其解析为

    string FluentSearch = abc, abc
    
    因此,在服务器参数中,我们至少有一个字符串参数以逗号分隔重复值

    我希望服务器应该解析请求并编写不带逗号的请求。
    Asp.Mvc
    在何处以及为什么用逗号将相同的参数预处理两次?
    以前是特定的操作执行器吗?

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

    看到这个答案了吗

    摘自答案

    这件事是否属实完全取决于当局 是否区分大小写

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

    现在仔细看,它明确地说

    哈希代码提供程序为中的键分配哈希代码 NameValueCollection。默认的哈希代码提供程序是 不区分大小写HashCodeProvider


    因此,它似乎可以更改为区分大小写。我没有试过。你可以试试。查询字符串参数的行为应该相同。

    太好了,谢谢!请指出我在哪里可以看到asp.net mvc边界中默认csv解析器的实现?什么实现决定将两个键组合成一个用逗号分隔的参数?请建议我欢迎堆栈溢出!我将您的代码示例缩进了4个空格,以便正确呈现;我还在你的解释中添加了一些特定的词语作为代码。正确设置代码和问题的格式可以提高可读性,这样更多的人会理解你的问题,并且更容易回答。有关格式的详细信息,请查看。谢谢您的建议!