Post 从 Angular 到 .Net 5 webapi 的参数未发送

Post parameter from Angular to .Net 5 webapi are not sent

我有一个带有简单控制器和 HttpPost-Action 的 .Net5 Webapi:

[ApiController]
[Route("[controller]")]
public class UploadController : ControllerBase
{
    [HttpPost]
    [Route("codeisvalid")]
    public bool CodeIsValid(string code)
    {
       return code == "dbddhkp";
    }
}

我尝试从 Angular 组件中调用该操作:

this._http.post<any>(http://localhost:29438/upload/codeisvalid', { code: 'wrongcode'}).subscribe(data => {
   this.codeIsValid=data;
   this.codeChecked=true;
});

操作已调用,但“代码”始终为 null。我还尝试将 Action 修改为 public bool CodeIsValid([FromBody] string code)(添加“[FromBody]”),但此方法不再被调用,而是收到错误 400

"The JSON value could not be converted to System.String"

我需要更改什么才能使这项工作正常进行?

假设其他所有方法都有效,而不是传递对象,只需传递 'wrongcode'。 C# 期望 传入一个字符串,而不是 属性 对象。

this._http.post<any>('http://localhost:29438/upload/codeisvalid', 'wrongcode').subscribe(data => {
   this.codeIsValid=data;
   this.codeChecked=true;
});

None 个答案对我有用。我终于在我的 C# 函数中添加了一点开销。没有错误

public class CodeModel {
   public string Code {get;set;}
}

public bool CodeIsValid ([FromBody]CodeModel codemodel) {
   return codemodel.Code=="dbddhkp";
}