邮差使用Put

时间:2016-10-25 21:33:08

标签: c# json api postman url-parameters

尝试使用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

1 个答案:

答案 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
 }
相关问题