Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Asp.net web api 如何查询绑定参数?_Asp.net Web Api_Asp.net Core 2.0_Asp.net Apicontroller - Fatal编程技术网

Asp.net web api 如何查询绑定参数?

Asp.net web api 如何查询绑定参数?,asp.net-web-api,asp.net-core-2.0,asp.net-apicontroller,Asp.net Web Api,Asp.net Core 2.0,Asp.net Apicontroller,我正在尝试查询绑定参数id。它一直以0的形式出现s2在提供时有一个值: id=0,s=null id=0,s2=true 为什么未捕获id?将代码更改为使用FromRoute作为id,因为它是通过route来的,并且更改Http Get,它与您在url中传递的内容不一致 [Route("api/[controller]")] public class ValuesController : Controller { [HttpGet()] public string Get(

我正在尝试查询绑定参数
id
。它一直以
0
的形式出现<代码>s2在提供时有一个值:

id=0,s=null

id=0,s2=true


为什么未捕获
id

将代码更改为使用FromRoute作为id,因为它是通过route来的,并且更改Http Get,它与您在url中传递的内容不一致

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet()] 
    public string Get([FromRoute]int id, [FromQuery]string s2)
    {
        return "value";
    }
}

将您的代码更改为使用FromRoute作为Id,因为它是通过路由来的,并更改Http Get,因为它与您在url中传递的内容不一致

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet()] 
    public string Get([FromRoute]int id, [FromQuery]string s2)
    {
        return "value";
    }
}

您的代码应该是这样的

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet("sub/{id?}")] 
    public string Get(int? id, string s2)
    {
        return "value";
    }
}

您的代码应该是这样的

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet("sub/{id?}")] 
    public string Get(int? id, string s2)
    {
        return "value";
    }
}

取下
[FromQuery]
。您明确地声明它应该来自查询字符串,但它不是。@KirkLarkin:太好了。谢谢什么时候使用
[FromQuery]
?这是为了更准确地使用它-绑定非常智能,可以检查多个源(例如路由、查询字符串、正文)。如果希望更明确、更准确,可以使用这些属性()。e、 g[FromQuery]仅当参数在query-string中时才表示bind。取下
[FromQuery]
。您明确地声明它应该来自查询字符串,但它不是。@KirkLarkin:太好了。谢谢什么时候使用
[FromQuery]
?这是为了更准确地使用它-绑定非常智能,可以检查多个源(例如路由、查询字符串、正文)。如果希望更明确、更准确,可以使用这些属性()。e、 g[FromQuery]表示只有当参数在查询字符串中时才使用bind。我可以看出您的代码确实有效。一旦我在OP中删除
[FromQuery]
,它也会工作。有什么区别?这个链接会帮助你。我可以看出你的代码确实有效。一旦我在OP中删除
[FromQuery]
,它也会工作。有什么区别?这个链接会帮助你。