Должно ли ModelState.Isvalid и DbUpdateConcurrencyException находиться в
Контроллер или репозиторий? Я создал основной проект MVC, провел
подмости на стол.
ModelState.IsValid
принадлежат к уровню представления, он должен оставаться там. Если его значение равно true
, вы должны вернуть то же представление, которым пользователь управлял до того, как он его отправил.
DbUpdateConcurrencyException
принадлежит слою репозитория, и вы не должны распространять его на уровень представления. Вы ловите это исключение, когда оно происходит. Вы регистрируете соответствующие детали об этом. После этого вы выбрасываете пользовательское исключение, например, BusinessException
, которое содержит только сообщение, которое пользователь может понять, например " Кто-то уже изменил содержимое. Обновите его, чтобы просмотреть ". Уровень представления знает только о BusinessException
и о том, как прочитать его сообщение.