Куда я должен поместить свои строго типизированные viewdata asp.net-mvc?
-
03-07-2019 - |
Вопрос
Я вложил свои классы viewdata в свои контроллеры, и по мере того, как их число растет, я начинаю спрашивать себя, хорошая ли это идея.С другой стороны, что-то о загрязнении каталогов /Views и /Controllers этими вещами кажется неправильным.
Есть ли какое-то соглашение, которого мне здесь не хватает?Может быть, каталог /ViewData?idk, какие есть хорошие места для моих классов viewdata?
Решение
Я сделал именно то, что вы предлагаете, мои строго типизированные viewdata живут в / ViewData. Я думал о том, чтобы поместить его в каталог \ Model, но мне не нравятся мои проекты, имеющие слишком много вложенных каталогов. \ ViewData - это то, что делает Кигг .
Другие советы
Я не знаю конвенции. Я просто поместил свой в /Model/ViewModel/BlahViewModel.cs
и т. Д. Я бы не стал помещать их в отдельный проект, пока в этом нет особой необходимости. Это не будет трудно переместить их позже, если это необходимо.
Я поместил свои классы данных представления в проект, посвященный именно этому. Они DTO, и включение их в собственный проект гарантирует, что они не зависят ни от чего выше в архитектурных слоях.
Использование их в качестве DTO для доставки в представления - это только один из способов их использования. Я мог бы отправить их по проводам через какое-то время, внутри сообщения на служебной шине или чем-то еще.
поскольку вы используете MVC, а структура папок должна представлять структуру пространства имен вашего кода, я бы рекомендовал для каждого из ваших объектных доменов сгруппировать ваши контроллеры, модели и службы в отдельные папки
мы бы использовали
Доменное имя
Controllers Model Services