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";
}
我有一个带有简单控制器和 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";
}