如何将字符串值从Angular 8发布到.NET核心Web API?

问题描述 投票:0回答:2

我无法将简单的字符串值发布到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)
{
    //...

}
angular asp.net-core http-post asp.net-core-webapi
2个回答
0
投票

使用[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
投票

在api中进行一些调整

 [HttpPost]
            [Route("api/role/CreateRole")]
            public int Post([FromBody] string name)
            {
               //logic...
            }
© www.soinside.com 2019 - 2024. All rights reserved.