Я не уверен, почему мое перечисление типа ScheduleType не привязывается к типу свойства в приведенном ниже json. Другие свойства связывают find, и у меня не было проблем с привязкой enum в других местах, мысли? Всегда по умолчанию используется первый.

JSON

{"Id":0,"BulkInsertId":null,"DivisionId":10406,"DivisionName":"17","DivisionOrder":1,"Type":1,"Name":"A1 vs. A2" }

< Сильный > Класс

public class ScheduleMatchupModel : IScheduleMatchupModel
    {
        public ScheduleType Type { get; set; }

        public int Id { get; set; }
        public int DivisionId { get; set; }
        public int? DivisionOrder { get; set; }
        public string DivisionName { get; set; }

IScheduleMatchupModel.cs

public interface IScheduleMatchupModel
{
    int Id { get; set; }
    ScheduleType Type { get; set; }

ScheduleType Enum

[DataContract(Namespace = "")]
public enum ScheduleType
{
    [EnumMember(Value = "0")]
    All = 0,
    [EnumMember(Value = "1"), Display(Name = "Pool Play")]
    Pool,
    [EnumMember(Value = "2"), Display(Name = "Bracket Play")]
    Bracket
}
0
Mike Flynn 4 Фев 2014 в 22:25

1 ответ

Лучший ответ

С помощью атрибута EnumMember вы устанавливаете определенные значения для своих перечислений:

[EnumMember(Value = "0")]
All = 0,
[EnumMember(Value = "1"), Display(Name = "Pool Play")]
Pool,
[EnumMember(Value = "2"), Display(Name = "Bracket Play")]
Bracket

Единственная проблема заключается в том, что свойство Value EnumMember представляет собой строку:

public string Value { get; set; }

И вы назначаете целые числа своим перечислениям в своем JSON:

{...,"Type":1,... }

Поэтому вам следует попытаться изменить его на строку в своем JSON:

{..."Type":"1",... }
2
Paweł Bejger 4 Фев 2014 в 22:59
Удаление EnumMember имеет тот же эффект
 – 
Mike Flynn
4 Фев 2014 в 22:39
Я сделал свойство строкой в ​​Javascript, и оно работает. Как-то странно, что нет способа обойти это.
 – 
Mike Flynn
4 Фев 2014 в 22:47