Нет, конечно, язык не должен иметь комментариев. Но (полезная) программа должна иметь комментарии ... Я не согласен с вашей идеей, что в грамотном коде нет комментариев. Какой-то очень хороший код легко понять с помощью комментариев, но только с трудностями без него.
Значение Group в действии будет 0. Вы можете проверить, равна ли Group нулю, и вызвать ModelState.AddModelError. Было бы лучше, если бы можно было явно установить значение элемента по умолчанию в раскрывающемся списке, но это невозможно в Html.DropDownList
В любом случае я использую перегрузку:
С этим у вас есть одно свойство в Модели для списка Групп и один для ключа выбранной Группы. Если я использую
, то ModelState.IsValid для меня всегда ложно.