У меня есть SelectList, представленный как свойство в модели представления, и заполняю его в действии, используя необходимый репозиторий. Я думаю, что код, который напрямую взаимодействует с репозиториями, должен быть тем, который также отвечает за заполнение, будь то действия контроллера, сервисный уровень или что-то еще.
Я не думаю, что заполнение списка непосредственно из модели представления является хорошей идеей, потому что для этого требуется, чтобы модель представления имела зависимость от репозитория и выполняла взаимодействия с базой данных, а модель представления не должна отвечать за этот вид. вещи.
Вы также можете создать отдельный специальный объект, называемый Initializer или что-то в этом роде, который выполняет все заполнение и инициализацию, если у вас есть несколько полей SelectList и вы хотите, чтобы код ваших действий был чище.