Что-то, с чем я борюсь, более философски, я полагаю, является ли элементы DropDownList (или действительно любые элементы списка выбора) частью модели, или они должны быть жестко закодированы в пользовательском интерфейсе или бизнес-уровне.Или, может быть, это хорошее использование ViewModel?
Для некоторых видов выпадающих списков вам, очевидно, нужно сделать их частью модели.Например, модель должна сгенерировать выпадающий список идентификаторов заказов, связанных с клиентом.
Другие виды, которые я бы назвал «поисковыми» данными, для меня менее понятны.Пол, например.Зачем использовать поиск в оба конца, чтобы заполнить поле двумя элементами?Возможно, это преждевременная оптимизация, но если у вас есть 50 полей, это много циклов, чтобы заполнить одну страницу.Конечно, кеширование там может пригодиться, но это кажется грязным.
Я также беспокоюсь, что добавление всех этих списков поиска в модель излишне захламит его.Особенно, если у вас их много.
Существует также возможность не жесткого кодирования в пользовательском интерфейсе, а жесткого кодирования на бизнес-уровне.Возможно, даже создание класса, который ничего не делает, но заполняет эти данные.
Если ответ таков, вы все равно должны сделать их частью модели данных, тогда возникает проблема того, должна ли ваша модель данных иметь другую таблицу длякаждый набор полей поиска.Если ваша модель данных имеет 200 или 300 таких полей, то это 200 или 300 таблиц, и это действительно усложняет ведение вашей модели данных.
Я задал вопрос о наличии общей справочной таблицы некоторое время назад, и все согласились с тем, что это плохая идея.Но для приложений с большим объемом данных, где много областей, я сомневаюсь.
Теперь я знаю, что многие из вас скажут: «Это зависит», но я смотрю на «в целом».такой ответ.Вообще, какое здесь эмпирическое правило?