Asp.net web api 允许参数名称包含“0”;ASP.Net核心WEB API中的

Asp.net web api 允许参数名称包含“0”;ASP.Net核心WEB API中的,asp.net-web-api,asp.net-core,asp.net-core-mvc,asp.net-web-api-routing,Asp.net Web Api,Asp.net Core,Asp.net Core Mvc,Asp.net Web Api Routing,我的操作方法应该如下所示: public IActionResult GetAll([FromQuery]string page[Number],[FromQuery]string page[Size]) { //code } HTTP Request is like: "GetAll?page%5Bnumber%5D=0&page%5Bsize%5D=100". 问题:参数名不允许使用方括号。此外,我会选择更简单的参数名,您可以使用字典解决此问题: public

我的操作方法应该如下所示:

 public IActionResult GetAll([FromQuery]string page[Number],[FromQuery]string page[Size])
  {
     //code
  }

HTTP Request is like: "GetAll?page%5Bnumber%5D=0&page%5Bsize%5D=100".

问题:参数名不允许使用方括号。

此外,我会选择更简单的参数名,您可以使用字典解决此问题:

public IActionResult GetAll(Dictionary<string, string> page) {
  var x = page["Number"];
  var y = page["Size"];
}
public IActionResult GetAll(字典页){
var x=第[“编号”]页;
变量y=页面[“大小”];
}

< /代码>我不能控制端点:)我也会使它更简单!谢谢!你必须考虑<代码>名称[1 ] < /> >或代码>名称[KEY] < /C> >不是HTML特征。从HTML的角度来看,它们只是名称,而不是数组。只是一些服务器端的应用程序/语言(如PHP)。将其解释为数组。但是,这不是一个标准,您不应该依赖于
name[key]
表示一种字典/列表,它同样适用于Get参数:
索引?a=1&a=2
只是tat:a的2个值;一次为1,一次为2。它不是数组,也不是HTML/Http标准中定义的。每种语言都决定tzo做什么,即只计算第一个或最后一个。有些语言可能会将它作为数组,而其他语言只有在
a[]=1&a[]=2
,但这完全取决于实现。这就是为什么您应该避免使用此类术语/模式。