尝试使用Postman做Put,似乎无法弄清楚:
我有这个方法,它触发一个断点,一切都很好:
public IHttpActionResult Put(User user)
{
// ... code ...
return StatusCode(HttpStatusCode.NoContent);
}
邮递员:
url: .../api/users/2
Headers(1): Content-Type application/json,
Body:
{
"id": "1",
"login": "Test",
"pass": "1"
}
...通常的东西等...
它有效,但现在我需要将方法更改为
public IHttpActionResult Put(int key, User user)
{
// ... code ...
return StatusCode(HttpStatusCode.NoContent);
}
我使用Postman在一个消息体中尝试了一切,没有任何东西可以触发断点。如何将该密钥与用户对象一起传入
需要添加[FromBody]也因为我的routeTemplate:" api / {controller} / {id}"是这样的,我将方法定义从key更改为id,这样我可以使用以下url调用Put ... / api / users / 3
答案 0 :(得分:1)
您需要使用[FromBody]。以下是我与HttpPost一起使用的工作代码
[HttpPost("ByYear")]
public async Task<IActionResult> GetStudentDetailByYear([FromBody]SearchStudentModel model)
{
if (string.IsNullOrWhiteSpace(model.query)
|| string.IsNullOrWhiteSpace(model.AcademicYearID))
return BadRequest("Required Parameter not provided");
// some codes to handle the query
}