我已经开始构建一个webapi。我有一个像这样的模型类:
public class ParentItem
{
public long Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string Profession { get; set; }
public string PhoneNumber { get; set; }
public CaretakerType Caretaker { get; set; }
public string Email { get; set; }
}
public enum CaretakerType
{
Father,
Mother,
LegalGuardian,
EmergencyContact
}
目前的post方法只是默认方法
[HttpPost]
public async Task<ActionResult<ParentItem>> PostParentItem(ParentItem parentItem)
{
_context.ParentItems.Add(parentItem);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(GetParentItem), new { id = parentItem.Id }, parentItem);
}
但是,每当我用邮递员测试post方法时,就像这样:
{
"firstName": "Person",
"lastName" : "Name",
"address" : "an address",
"profession": "a profession",
"phoneNumber": "a number",
"caretakerType": "Mother",
"email": "an email"
}
使用Raw单选按钮并作为JSON类型,它总是返回
{
"id": 1,
"firstName": "Person",
"lastName": "Name",
"address": "an address",
"profession": "a profession",
"phoneNumber": "a number",
"caretaker": "Father",
"email": "an email"
}
我说母亲,LegalGuardian或EmergencyContact并不重要,它总是以“父亲”的身份出现。为什么是这样?目标框架是net5.0。我目前正在使用EntityFrameworkCore.SqlServer和EntityFrameworkCore.InMemory。
JSON的名称与DTO类的属性名称不同。
public class ParentItem
{
public long Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string Profession { get; set; }
public string PhoneNumber { get; set; }
public CaretakerType Caretaker { get; set; } // <---- "Caretaker"
public string Email { get; set; }
}
{
"firstName": "Person",
"lastName" : "Name",
"address" : "an address",
"profession": "a profession",
"phoneNumber": "a number",
"caretakerType": "Mother", // <-- "caretakerType"
"email": "an email"
}
将您的JSON更改为此:
{
"firstName": "Person",
"lastName" : "Name",
"address" : "an address",
"profession": "a profession",
"phoneNumber": "a number",
"caretaker": "Mother", // <-- "caretaker"
"email": "an email"
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句