我无法将简单的字符串值发布到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)
{
//...
}
使用[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)
{
//...
}
在api中进行一些调整
[HttpPost]
[Route("api/role/CreateRole")]
public int Post([FromBody] string name)
{
//logic...
}