Как я могу отправить модель в вызове POST REST из Chrome инструментов разработчика? - PullRequest
1 голос
/ 19 июня 2020

Я делаю вызов REST (метод POST) из Chrome -> Инструменты разработчика. Когда я использую следующий запрос, когда он попадает в мой контроллер, params: name, id отправляются как null / empty, 0. Если я удалю '{person {}}', значения будут переданы правильно. Я хотел бы правильно структурировать запрос, как я могу передать запрос с таким человеком, как-

 {
   person{
      name: "abc",
      id:26684378
 }

Chrome запрос:

fetch('http://someurl.com/Save', {
       method: 'POST',
       body: JSON.stringify(
       {
          person
          {
            name: "abc",
            id:26684378
          }

       }),
       headers: {
       'Content-type': 'application/json; charset=UTF-8'
     }
  })
  .then(res => res.json())
  .then(console.log)

Модель

[Serializable]
[DataContract]
public class Person
{

    public string Name { get; set; }

    public string Id { get; set; }
}

Контроллер:

public string Save(Person person)  // person object here has empty/null property value
{
}

1 Ответ

0 голосов
/ 19 июня 2020

Прежде всего ваш JSON.stringify вызов отсутствует : после person.

JSON.stringify(
   {
      person:
      {
        name: "abc",
        id:26684378
      }
   })

приведет к следующему json:

{"person":{"name":"abc","id":26684378}}

Если это желаемый ввод, затем вам нужно добавить модель, содержащую Person:

[Serializable]
[DataContract]
public class PersonInput
{    
    public Person Person { get; set; }
}

И изменить свое действие в контроллере, чтобы принять его:

public string Save(PersonInput personInput)  
{
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...