2016-10-25 5 views
1

Попытка сделать Помещенный с помощью почтальона, не может, кажется, чтобы понять это:Почтальон с использованием Помещенный

У меня есть этот метод, который вызывает точку останова, и все это хорошо:

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" 
     } 

... обычный материал, и т.д ...

Это работает, но NOW мне нужно изменить метод

public IHttpActionResult Put(int key, User user) 
{ 
    // ... code ... 
    return StatusCode(HttpStatusCode.NoContent); 
} 

Я попробовал все в теле сообщения, используя Почтальон, ничего не делает это вызвать брейк-пойнт. Как мне передать этот ключ вместе с пользовательским объектом ???

Необходимо добавить [FromBody] также из-за того, что мой routeTemplate: «api/{controller}/{id}» подобен этому, я изменил определение метода с ключа на id, таким образом, я могу вызвать Put, используя следующий URL-адрес. ../api/users/3

+0

попытка 'URL: .../апи/users' –

+0

Похоже, вы хотите добавить' [FromBody] 'параметру пользователя. См. [Параметры множественного ввода/публикации WebAPI] (http://stackoverflow.com/q/14407458/215552), который, как представляется, задает тот же вопрос, что и ваш ... –

+1

Или, возможно, это: [Почтальон с параметрами miltiple в Интернете Api C#] (http://stackoverflow.com/q/39681590/215552) –

ответ

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 
} 
Смежные вопросы