Как опубликовать строковое значение от Angular 8 до. NET core Web API? - PullRequest
0 голосов
/ 18 апреля 2020

Я не могу опубликовать простое строковое значение в моем WebApi, и я получаю ошибку 415. Какой правильный синтаксис, чтобы это произошло? Спасибо!

createRole(name: string) {
    var fullUri = this.baseUri;
    fullUri += 'api/role/CreateRole';

    return this.http.post(fullUri, name);
}
[HttpPost("CreateRole")]
public async Task<IActionResult> CreateRoleAsync([FromBody]string name)
{
    //...

}

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Используйте атрибут [FromForm] вместо [FromBody]. И примените атрибут [ApiController] к вашему контроллеру.

[HttpPost("CreateRole")]
public async Task<IActionResult> CreateRoleAsync([FromForm]string name)
{
    //...

}

Это будет работать, если вы отправите name в качестве FormData или с помощью тега Form. Потому что [FromForm] получает значения из отправленных полей формы.

Другое решение - это разместить name как объект и создать модель / DTO

public class SaveModel 
{
   public string Role {get; set;}
}
[HttpPost("CreateRole")]
public async Task<IActionResult> CreateRoleAsync([FromBody] SaveModel model)
{
    //...

}
0 голосов
/ 18 апреля 2020

Небольшой твик в API

 [HttpPost]
            [Route("api/role/CreateRole")]
            public int Post([FromBody] string name)
            {
               //logic...
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...