Вам не нужны какие-либо указания из примеров того, как это сделать. В конечном итоге вам придется создавать такие приложения самостоятельно, что означает творческий подход.
Я с самого начала решил не использовать ни встроенную проверку, ни API членства, чтобы не столкнуться с его ограничениями в какой-то момент времени.
Для вашей ситуации: это в значительной степени стандартно.
Представьте себе поток выполнения следующим образом:
- Почтовая форма
- Проверка формата входных данных без обращения к базе данных
- Если (2) задано, вы проверяете ввод с точки зрения бизнес-правил / целостности данных. Здесь вы говорите с базой данных
- Если (3) пройдено, то выполнить свою операцию, какой бы она ни была. Если это каким-то образом дает сбой (возможно, правила целостности данных в базе данных запрещают операцию, например, вы удалили связанный объект из другого окна браузера), отмените его и уведомите пользователя об ошибке операции.
Старайтесь, чтобы методы контроллера были как можно более пустыми. Логика проверки и работы должна находиться в ваших моделях и бизнес-логике. Контроллер должен в основном пытаться выполнить одну предполагаемую операцию и в зависимости от возвращенного состояния просто возвращать одно представление или другое. Может быть, еще несколько вариантов, но не весь набор проверок ролей пользователей, прав доступа, вызовов некоторых веб-служб и т. Д. Упростите процесс.
P.S. У меня иногда складывается впечатление, что встроенные функции, предназначенные для упрощения простых вещей для большинства разработчиков, имеют тенденцию создавать новые барьеры над удаленными.