Угловая публикация строки в бэкэнд asp.net - PullRequest
0 голосов
/ 05 марта 2019

У меня есть угловой проект с бэкэндом asp.net. Что мне нравится делать, так это просто отправлять строку в мой контроллер.

Я попробовал следующее:

Угловая

constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string) { }

httpOptions = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json'
  })
};

postString(data:string) {
  this.http.post(this.baseUrl + 'api/utility/GetGuid/', "test", this.httpOptions)
  .subscribe((guid: string) => {
     //do something
  });
}

Backend:

[Route("api/[controller]")]
public class UtilityController : Controller
{

    [HttpPost]
    [Route("GetGuid")]
    public JsonResult GetGuid([FromBody]string data)
    {
       //do something
    }

Это не похоже на работу. Не знаю, как этого добиться, я просто публикую строку и получаю ее в бэкэнде.

Надеюсь, вы сможете мне помочь.

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Ответ был таков: строка, которую вы хотите отправить, должна быть настоящей строкой.Если вы просто отправите «тест», как я сделал, это не сработает.Вместо этого вам нужно убедиться, что вы получаете "внутри строки, что-то вроде этого:" \ "" + YOUR_STRING + "\" ". Это заставит POST-запрос отправлять" test "вместо только test. Тогда это работает.Надеюсь, кто-то еще сэкономит на этом время.

0 голосов
/ 05 марта 2019

Попробуйте установить заголовок Content-Type: application/json; charset=utf-8

Ссылка: https://weblog.west -wind.com / posts / 2013 / dec / 13 / accept-raw-request-body-content-with-aspnet-веб-апи

...