发布新用户出错 将值 {null} 转换为键入 'System.Guid' 时出错



我试图发布一个新用户到我的数据库,但我得到这个错误:

将值{null}转换为类型'System.Guid'时出错。路径'personId',第一行,位置130.">

这是我的代码:

newContactForm = new FormGroup({
firstName: new FormControl(),
lastName: new FormControl(),
anrede: new FormControl(),
titel: new FormControl(),
briefanrede: new FormControl(),
personId: new FormControl(),
});

onSubmit(){
console.log(this.newContactForm.getRawValue());
this.pService.registerUser(this.newContactForm.getRawValue()).subscribe(({
error: error => {
let errorMessage = error.message;
console.error('There was an error!', error);
}
}))
}

registerUser(data: any)
{
return this.http.post<PersonenSharing[]>(this.pController,data);
}

后台发布:

// POST: api/Personens
// To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754
[HttpPost]
public async Task<ActionResult<Personen>> PostPersonen(Personen personen)
{
_context.Personens.Add(personen);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (PersonenExists(personen.PersonId))
{
return Conflict();
}
else
{
throw;
}
}
return CreatedAtAction("GetPersonen", new { id = personen.PersonId }, personen);
}

我也试过没有personId到我的FormControl。那么我的个人id就是- PersonId {0000000 -0000000 -0000000 -000000000000} System。Guid

似乎没有生成新的personId。

解决方案是通过在后端配置GUID的自动生成,而与前面的GUID无关(您可以在请求中发送它,但情况并非如此)。

有很多解决方案,我更喜欢通过Person模型的构造函数分配新的GUID来配置它,例如

Public class Person
{
public Person()
{
Id = Guid.NewGuid().ToString("N");
}
public string Id {get; set;}
public string Name {get; set;}
.
.
.
}

相关内容

  • 没有找到相关文章

最新更新