2014-11-27 3 views
0

Я хочу проверить поле перечисления в форме. Поле обязательно. Вот как я определил перечисление:ASP MVC 5 Клиент Проверка перечисления

public enum Categories 
{ 
    A = 1, 
    B = 2, 
    C = 3 
} 

и свойство моего ViewModel:

[Required(ErrorMessage = "It is mandatory!")] 
    [EnumDataType(typeof(Categories), ErrorMessage="Unknown category")] 
    [DisplayName("Category A")] 
    public Categories Category { get; set; } 

Я хочу, чтобы проверить это на стороне клиента. Но в начале, когда я пытаюсь создать объект с категорией, значение категории равно 0 (EditTemplate для категории - Combobox). Это значит, я должен получить сообщение «Это обязательно!», Не так ли? Но я не получаю сообщение, в котором говорится, что поле категории является обязательным. Я не могу понять, как работает RequiredAttribute с полями Enumeration.

+2

Вы должны показать, как генерировать контроль, но делают недвижимость NULLABLE 'общественные категории? Категория {get; задавать; } ' –

+0

Привет, Стивен, спасибо за ваше решение. Помогает мне! – MrScf

ответ

1

enum - тип значения не ссылочный тип. Required проверяет значение null, и вы получаете только нули с ссылочным типом.

Вы можете попробовать:

public class Categories { } 
+0

Почему не публичные Категории? Категория {get; задавать; }? – Maybe

+0

Привет, спасибо за ваше объяснение. Наконец, я использовал решение Nullable . Я хочу, чтобы Категории оставались перечислениями – MrScf

Смежные вопросы