C# 从前端提交模型后,API控制器中的模型为空

C# 从前端提交模型后,API控制器中的模型为空,c#,angular,api,.net-core,C#,Angular,Api,.net Core,我有一个带.Net核心的Angular项目,本质上非常简单,该应用程序只列出了一个人,还允许某人添加一个人 但是,当我提交一个新人时,控制器中的模型总是空的 以下是我的角度贴子方法: public async onSubmit(value: any, valid: boolean, isLive: boolean) { const model = { ...value, }; console.log(JSON.stringify(model)); try { con

我有一个带.Net核心的Angular项目,本质上非常简单,该应用程序只列出了一个人,还允许某人添加一个人

但是,当我提交一个新人时,控制器中的模型总是空的

以下是我的角度贴子方法:

 public async onSubmit(value: any, valid: boolean, isLive: boolean) {

 const model = {
   ...value,
 };

 console.log(JSON.stringify(model));

 try {

   const header = new HttpHeaders()
    .set('Content-type', 'application/json');

   var success = this.httpClient.post(this.baseUrl + 'person', JSON.stringify(model), { headers: header }).toPromise();

   if (success) {
     console.log('wooo');
   }

 }  catch (error) {
   console.log(error);
 }

} 
将模型记录到控制台会显示以下数据:

{"Firstname":"john","Lastname":"Doe","Gender":"2","DateOfBirth":"29/09/1955"}
但是,在API控制器中,我看到了以下内容:

有人能推荐或建议为什么它是空的吗?我已尝试删除JSON.stringify,但问题仍然存在

按照注释中的建议,通过邮递员到达终点,模型将填充数据。以下是邮递员的尸体:


似乎从角度前端提交会将性别变量设置为
字符串
,将出生日期设置为不正确的格式。

您不应该需要
[FromBody]
,除非您也在相同调用中传递URL数据,问题似乎是服务器对内容类型/标题的解释有问题

尝试使标题集合与Postman测试中的标题集合完全相同。 此外,可能值得稍微简化代码以跟踪问题:

const headers = { 'content-type': 'application/json'}  
const body=JSON.stringify(model);
console.log(body)
var success = this.httpClient.post(this.baseURL + 'person', body,{'headers':headers})

您是否使用默认的.net核心JSON转换器或newtonsoft.JSON?嘿@SergeyAnisimov,我在项目中也没有指定。此外,您是否尝试从Postman之类的工具发布相同的模型?如果是,它是否有效?在你的操作中删除
[FromBody]
“Hey@SergeyAnisimov我刚刚尝试过,用我的发现更新了帖子。
const headers = { 'content-type': 'application/json'}  
const body=JSON.stringify(model);
console.log(body)
var success = this.httpClient.post(this.baseURL + 'person', body,{'headers':headers})