Я относительно новичок в MVC, так что это, скорее всего, новичок.Просмотр конкретных моделей в ASP.NET MVC?
Я пытаюсь понять лучшие практики того, как поддерживать четкое разделение проблем в нескольких сценариях, которые не кажутся прямолинейными.
Есть два сценария, которые я рассматриваю прямо сейчас. Представьте себе очень простое приложение, которое позволяет пользователям просматривать и редактировать онлайн-профили для юристов. Существует действие/представление для отображения профиля конкретного пользователя и действия/вида для редактирования профиля конкретного пользователя. Легко представить красивый и чистый класс модели, чтобы представить детали профиля пользователя, возможно, сделанные с помощью Entity Framework и сопоставленные с таблицей SQL-профиля профиля пользователя.
В представлении действий/представлении для отображения профиля пользователя, функционально, мне нужно иметь кнопку или ссылку, которая позволяет пользователю редактировать профиль. Но это должно быть доступно только некоторым подмножествам пользователей. Например, пользователь может редактировать свой собственный профиль. Кроме того, супер пользователи могут редактировать профиль пользователя. Мой вопрос заключается в том, каким образом View должен решить, должна ли быть ссылка при рендеринге определенного профиля. Я предполагаю, что неверно, чтобы представление содержало логику, чтобы определить, может ли текущий пользователь редактировать текущий профиль. Должен ли я добавить свойство IsEditable в класс модели UserProfile? Это не кажется трагичным, но это тоже не совсем правильно. Должен ли я создать новый класс Model, который объединяет UserProfile с дополнительной информацией о безопасности?
Другой сценарий ... При редактировании определенного профиля одна из вещей, которые редактируются, - это список специальностей для конкретного адвоката. Список возможных специальностей не фиксирован. Если представление хочет отобразить их в поле со списком, ему нужен список всех возможных специальностей из базы данных. Представление не должно выводить их из базы данных напрямую, так что я снова делаю совокупную модельную вещь и предоставляю представление как с помощью UserProfile, так и со списком допустимых специальностей?
Я предполагаю, что общая проблема, которую я пытаюсь выяснить, - это должно быть удобно с созданием большого количества небольших классов моделей, которые по своей сути специфичны для отдельных представлений. Каждый класс будет включать в себя различные несвязанные части более крупной модели домена, необходимые для этого конкретного вида.