Angular сообщение не может передать параметр Asp. Net MVC - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь выполнить POST из моего angular приложения в Asp. Net MVC Controller, но я не могу отправить параметры. Кажется, ноль. Когда я делаю POST-запрос к Postman, он успешно выполняет POST-запрос.

Контроллер:

  public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    [AllowCrossSiteJson]
    public ActionResult Index(PersonModel person)
    {
        int? personId = person.PersonId;
        string name = person.Name;
        string gender = person.Gender;
        string city = person.City;

        return View();
    }

Я пробовал следующее, но это не сработало:

  1. Тип содержимого: 'application / x- www-form-urlencoded'

  2. Тип содержимого: 'application / json; charset = utf-8 '

  3. заголовки не существуют: this.httpClient.post (' http://localhost: 62918 / ', person) .subscribe (..)
  4. JSON .stringify -> this.httpClient.post ('http://localhost: 62918 / ', JSON .stringify (person) .subscribe (..)

angular 8:

const httpOptions = {
  headers: new HttpHeaders({'Content-Type':'application/json'})
};
const person = {PersonId: 2, Gender: 'M', City: 'New York', Name: 'Adam'};
this.httpClient.post('http://localhost:62918/', person, httpOptions ).subscribe(
  (res) => console.log("res:", res),
);

POSTMAN - запрос fiddler Raw:

POST http://localhost: 62918 / HTTP / 1.1 Content- Тип: application / json Пользователь-агент: PostmanRuntime / 7.23.0 Принятие: / Контроль кэша: без кэширования Почтальон-токен: aa404f5f-4e52-4a95-91e4-dc3037c4b1df Хост: localhost: 62918 Принимать- Кодировка: gzip, deflate, br. Длина контента: 83 Соединение: keep-alive

{PersonId: 2, Имя: 'Адам', Пол: 'M', Город: 'Нью-Йорк'}

...