Должна ли модель отвечать за хранение списков, которые в конечном итоге будут заполнять выпадающие списки в представлении? - PullRequest
0 голосов
/ 11 февраля 2011

Это может быть похоже на ASP.NET MVC - заполнение часто используемых выпадающих списков .

Я хочу заполнить DropDownLists.Некоторые из них являются статическими данными.Некоторые из них поступают из базы данных.Пару раз я обнаружил, что забыл вызвать код, который заполняет мои списки и соответственно устанавливает ViewBag.Для этого почти стоит добавить юнит-тест.Единственный способ, которым я считаю, что это подходит для юнит-теста, это если вы поместите его в модель / сервис.Есть ли лучшая практика для такого рода вещей?

Ответы [ 3 ]

1 голос
/ 11 февраля 2011

Я бы предположил, что данные содержатся в модели, но, возможно, они созданы методом html.helper.таким образом вы удерживаете разметку сантехники вне поля зрения и оставляете контроллер свободным для вызова необходимого вида и модели.

Вы также можете, конечно, передать его частичному виду с моделью <IList<SelectList>>.1004 *

кошки и их кожа:)

0 голосов
/ 11 февраля 2011

Мое эмпирическое правило заключается в том, что данные должны как-то находиться в модели, либо в виде готового к использованию SelectList, либо, в худшем случае, в каком-либо контейнере, который можно легко превратить в SelectList с помощью вызова LINQ-to-object.*

Суть в том, что представление никогда не должно содержать никакого нетривиального кода.

РЕДАКТИРОВАТЬ (ответ на ваш комментарий): я стараюсь не помещать слишком много кода в модели.Модели больше похожи на простую группу данных, собранных контроллером и используемых представлением.

Что касается простых и / или общих вещей, таких как дни недели, я считаю, что HTML-помощник является наиболее элегантным решением.См. ответ WayneC на этот вопрос .

0 голосов
/ 11 февраля 2011

Если вы следуете духу шаблона, то Модель должна предоставить Представлению все, что нужно представить пользователю, которое не является статичным. Если у вас есть статические выпадающие списки, вы можете сказать, что они могут быть созданы в разметке. Если вы передаете SelectList в представление из вашего действия, то я бы добавил его в модель, чтобы упростить и согласовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...