#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 с одной строкой.