как передать строку из Angular в .NET Core WebAPI и получить взамен json?

#c# #.net #angular #asp.net-web-api #.net-core

#c# #.net #angular #asp.net-web-api #.net-core

Вопрос:

все!

Я хочу отправить строку с моей лицевой стороны, я использую Angular9. Вот код:

 const word: string = this.str;
console.log(word);
this.http.post(this.myurl, word)
  .subscribe(data => {
    console.log(data);
    // console.log(this.value)
  });
  

Переменная word содержит строку (word), которая отправляется post-запросом на сервер. This.myurl — это строка URL, которая состоит из URL сервера.
И мой серверный сервер должен получить и вычислить эту строку (word). После этого он должен вернуть строку json на передний план. Вот код:

  [HttpPost]
    public async Task<ActionResult<string>> Adding([FromBody] string word)
    {
       
        string json = string.Empty;
       //some calculations with **word** after which I will get dictionary.
        json = JsonConvert.SerializeObject(dictionary);
        
      //some calculations
        return json;
    }
  

Итак, дело в том, что Angular сообщает об ошибке 415 в консоли. Я знаю, как сделать post-запрос без подписки, в то время как я не могу понять, как получить json в Angular в post-запросе. Каждый раз, когда я получаю другую строку json с сервера (на самом деле это зависит от строки, которую вы отправили спереди), поэтому я не могу создать статическую модель для этой цели.
В любом случае, я буду очень благодарен, если вы поможете мне с этим вопросом.

Комментарии:

1. Просто верните объект, фреймворк сериализует его за вас. В этом суть. Я полагаю, что from body ищет свойство word в объекте.

Ответ №1:

Для тех, у кого может возникнуть та же проблема, что и у меня, вот решение: Прежде всего, спасибо, дорогой Алуан Хаддад, я последовал вашему совету, поэтому я создал Model в своем бэкэнде (Model.cs, который содержит только одно свойство string), затем я поместил объект этой модели в качестве аргумента для моего контроллера:

 public async Task<ActionResult<ModelWord>> Endings(Model model)
        {
//....
}
  

И в качестве возвращаемого значения этот метод просто перенаправляет на GET controller с данными json, а мой интерфейс получает данные из метода Get (controller).

В моем Angular я тоже создал Model с одной строкой.