我有以下 endpoints :
public List<SubBranch> Get(GetSubBranch request)
{
SubBranch subBranch = new SubBranch();
subBranch.BranchId = 1;
subBranch.Addresses = new List<SubBranchAddress>();
subBranch.Addresses.Add(new SubBranchAddress { AddressType = AddressType.Postal, City = "A" });
subBranch.Addresses.Add(new SubBranchAddress { AddressType = AddressType.Test, City = "B" });
subBranch.Addresses.Add(new SubBranchAddress { AddressType = AddressType.Street, City = "C" });
return new List<SubBranch> { subBranch };
}
这是模型:
public class SubBranch
{
public int BranchId { get; set; }
public List<SubBranchAddress> Addresses { get; set; }
}
public class SubBranchAddress
{
public string City { get; set; }
public AddressType AddressType { get; set; }
}
public enum AddressType
{
Test,
Street,
Postal
}
这提供了以下JSON响应:
[
{
"BranchId": 1,
"Addresses": [
{
"City": "A",
"AddressType": "Postal"
},
{
"City": "B"
},
{
"City": "C",
"AddressType": "Street"
}
]
}
]
正如您所看到的, AddressType
枚举中的第一个值未通过 . 我希望 "City": "B"
低于它 "AddressType": "Test"
. 我用不同的顺序玩了不同数量的枚举值,每次第一个值都没有通过 .
为什么这样,我该如何解决?
1 回答
这是因为我在AppHosts.cs中有
JsConfig.ExcludeDefaultValues = true;
.我可以通过将其设置为
false
或使用Test
的非默认值来修复它: