Первое значение Enum неправильно отображается в ответе JSON - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть следующая конечная точка:

        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" ниже.Я играл с разным числом значений enum в разных порядках, и каждый раз, когда первое значение никогда не появляется.

Почему это так и как я могу это исправить?

1 Ответ

0 голосов
/ 10 декабря 2018

Это было потому, что у меня было JsConfig.ExcludeDefaultValues = true; в AppHosts.cs.

Я мог исправить это, установив его на false или используя значение не по умолчанию для Test:

public enum AddressType
{
    Test = 1,
    Street,
    Postal        
}
...