Ну, мое мнение таково: это зависит.
Я обычно контролирую свои входные данные в контроллерах и моделях, поэтому входные данные проверяются как в контроллере, так и в модели. Это на случай, если я захочу связать модель с другим типом приложения. Скажем, WPF.
Однако многие люди также используют «защитное программирование». Это означает, что каждый вход в функцию (параметр) проверяется. В этом случае один вход может быть проверен пару раз, но вы гарантируете, что даже если вы что-то измените, логика проверки сохраняется.
Так что для меня возникает пара вопросов:
1) Есть ли вероятность того, что может возникнуть сценарий, когда логика проверки будет обойдена. Как привязать модель к приложению wpf.
2) Хочу ли я снизить производительность по сравнению с обеспечением безопасности, проверяя входные данные в каждой функции?
Для меня эта статья о сквозных проблемах также помогла.
Это мои мысли по этому поводу. Надеюсь, это поможет