Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在api控制器中获取具有多个参数的字符串并对其进行解析_C#_Parsing_Controller_Get - Fatal编程技术网

C# 在api控制器中获取具有多个参数的字符串并对其进行解析

C# 在api控制器中获取具有多个参数的字符串并对其进行解析,c#,parsing,controller,get,C#,Parsing,Controller,Get,此方法接受以下类型的uri: /method?a=1&b=2&c=3 [Route("method")] public string Get(string a, string b, string c) { return "ok"; } 但如果我将uri更改为其他内容 比如说/方法?a=1&b=2 那么这个方法就行不通了 如何编写控制器操作,使其在“?”符号后获得任何类型的字符串,然后将其作为组件进行分析?您可以将其作为可选参数,如 [Route("method")] publ

此方法接受以下类型的uri:

/method?a=1&b=2&c=3

[Route("method")]
public string Get(string a, string b, string c)
{
return "ok";
}
但如果我将uri更改为其他内容 比如说
/方法?a=1&b=2
那么这个方法就行不通了


如何编写控制器操作,使其在“?”符号后获得任何类型的字符串,然后将其作为组件进行分析?

您可以将其作为可选参数,如

[Route("method")]
public string Get(string a, string b, string c = "")
{
  return "ok";
}

您可以将其设置为可选参数,如

[Route("method")]
public string Get(string a, string b, string c = "")
{
  return "ok";
}

可以将默认值传递给参数

/method?a=1&b=2&c=3

[Route("method")]
public string Get(string a= "", string b = "", string c = "")
{
return "ok";
}
现在它将为您工作

/method
/method?a=1
/method?b=2
/method?c=3

和所有组合

您可以将默认值传递给参数

/method?a=1&b=2&c=3

[Route("method")]
public string Get(string a= "", string b = "", string c = "")
{
return "ok";
}
现在它将为您工作

/method
/method?a=1
/method?b=2
/method?c=3

所有组合

我认为这个问题在MVC4的某些版本中已经解决,您应该为如下参数定义默认值:

[Route("method")]
public string Get(string a = "", string b = "", string c = "")
{
    return "ok";
}

我认为MVC4的一些版本已经解决了这个问题,您应该为如下参数定义默认值:

[Route("method")]
public string Get(string a = "", string b = "", string c = "")
{
    return "ok";
}