Несколько гранулярных видов моделей или одна модель - Asp.NET MVC3 - PullRequest
0 голосов
/ 21 апреля 2011

Я смотрю на создание моего первого приложения ASP.NET MVC с использованием MVC3.

Шаблон проекта, который я использовал, включал несколько моделей для регистрации пользователей, входа в систему и обновления забытого пароля.

Я хочу, чтобы пользователи проходили аутентификацию в моем собственном хранилище данных (возможно, с использованием Entity Framework) и с использованием Google OAuth.

Я предполагал, что мне нужен класс модели User, который содержит несколько стандартных свойств и некоторую бизнес-логику, которая обрабатывает «локальную» аутентификацию и вызов OAuth, но шаблон проекта меня смутил.

Должен ли я создавать несколько моделей представления для различных действий, таких как вход в систему, регистрация и т. Д., А затем использовать контроллер для создания экземпляра и вызова моей модели для выполнения бизнес-логики, или я должен использовать свою модель пользователя для всех различных действий? 1009 *

Спасибо Бен

1 Ответ

4 голосов
/ 21 апреля 2011

Должен ли я создавать несколько View-модели для различных действий, таких как Войти, зарегистрироваться и т. Д., А затем использовать контроллер для создания экземпляров и вызвать мою модель для выполнения бизнес-логика или я должен использовать мой пользователь модель для всех разных действий?

Просмотр модели для просмотра. Это правило. Для каждого представления может быть даже две модели представлений (одна для рендеринга данных в GET и одна для получения данных из представления в действии POST). Не стесняйтесь создавать модели для просмотра. Вам определенно не следует использовать модель User для всех различных действий, которые могут привести к катастрофическим последствиям. Модель должна использоваться вашим сервисным уровнем. Модель пользователя будет обрабатываться этим слоем и никогда не будет передана в представление.

Вы также можете оформить AutoMapper для отображения между вашими классами моделей и представлениями моделей. Это отличный инструмент, который особенно удобен, когда количество моделей представлений начинает увеличиваться.

...