Код: Выделить всё
[JsonObject]
public class MyModel
{
///
/// Gets or sets the username
///
[Display(Name = @"UserName")]
[JsonProperty(PropertyName = "userName", Required = Required.Always)]
public string UserName { get; set; }
/* .
. REST OF THE MODEL
.
. */
///
/// Gets or sets the enum model.
///
[Display(Name = @"EnumModel")]
[JsonProperty(PropertyName = "enummodel", Required = Required.Always)]
public MyEnumModel EnumModel { get; set; }
}
< /code>
myenummodel - это перечисление с этими значениями: < /p>
[JsonConverter(typeof(StringEnumConverter))]
public enum MyEnumModel
{
[EnumMember(Value = "My Value 1")]
MyValueOne,
[EnumMember(Value = "My Value 2")]
MyValueTwo,
[EnumMember(Value = "My Value 3")]
MyValueThree
}
Код: Выделить всё
"The value 'My Value 1' is not valid for EnumModel."
Что я пропустил? Как атрибут [enummember ()] действительно работает, когда я десюреализация?{
"userName":"testuser@gmail.com",
"enummodel":"My Value 1"
}
< /code>
Изменить 2: проверка модели < /h2>
Извините, но я забыл упомянуть одну важную вещь. Я использую, в моем контроллере проверка состояния модели: < /p>
if (!this.ModelState.IsValid)
{
return this.BadRequest(this.ModelState);
}
< /code>
Я думаю, что JSON правильно десериализируется с атрибутами Enummmember, но проверка не удалась, поскольку валидатор не использует Enummember для проверки моей модели? Это правильно?
Подробнее здесь: https://stackoverflow.com/questions/354 ... newtonsoft
Мобильная версия