【发布时间】:2021-02-19 20:19:33
【问题描述】:
我有一个带有 .Net Core 的 Angular 项目,它本质上非常简单,该应用程序只列出人员,还允许某人添加人员。
但是,当我提交一个新人时,控制器中的模型始终为空。
这是我的 Angular-Post 方法:
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 控制器中我看到以下内容:
任何人都可以推荐或建议为什么这是 null 吗?我已尝试删除 JSON.stringify,但问题仍然存在。
按照 cmets 中的建议通过 Postman 到达终点,模型将填充数据。下面是邮递员的正文:
{
"Firstname": "frefrefre",
"Lastname": "dewdewdew",
"Gender": 1,
"DateOfBirth": "2019-01-06T17:16:40"
}
似乎从 Angular 前端提交将 Gender 变量设置为 string,并将 DateOfBirth 设置为格式不正确..
【问题讨论】:
-
你使用默认的 .net core JSON 转换器还是 newtonsoft.json?
-
嘿@SergeyAnisimov 我还没有在项目中指定。
-
另外,您是否尝试过使用 Postman 之类的工具发布相同的模型?如果是,它有效吗?
-
删除你的操作中的
[FromBody] -
嘿@SergeyAnisimov 我刚刚尝试过,用我的发现更新了帖子。