Initial Warning: Long post and I might have got the pattern totally wrong anyway:
Given the following class which is the start of the Customer Aggregate:
public class Customer : KeyedObject
{
   public Customer(int customerId)
   {
      _customerRepository.Load(this);
   }
   private ICustomerRepository _customerRepository = IoC.Resolve(..);  
   private ICustomerTypeRepository = _customerTypeRepository = IoC.Resolve(..);
   public virtual string CustomerName {get;set;}
   public virtual int CustomerTypeId [get;set;}
   public virtual string CustomerType
   {
      get
      {
         return _customerTypeRepository.Get(CustomerTypeId);
      }
   }
}
And CustomerType is represented by a value object:
public class CustomerType : ValueObject
{
   public virtual int CustomerTypeId {get;set;}
   public virtual string Description {get;set;}
}
This is all well and good for when I have a customer object with a CustomerTypeId. However, when I want to populate a DropDownList within my MVC View, I'm struggling with the concept of how to correctly get the CustomerType value list from the ICustomerTypeRepostory.
The ICustomerTypeRepository is very simple:
public interface ICustomerTypeRepository
{
   public CustomerType Get(int customerTypeId);
   public IEnumerable<CustomerType> GetList();
}
Basically, what I want is to be able to call ICustomerTypeRepository correctly from my Controller, however I thought it would be best to separate the DAL (repository) layer from the controller. Now, am I just overcomplicating things? 
This is how my controller currently stands:
public class CustomerController : ControllerBase
{ 
    private ICustomerTypeRepository _customerTypeRepository = IoC.Resolve(..);
    public ActionResult Index()
    {
       Customer customer = new Customer(customerId); 
       IEnumerable<CustomerType> customerTypeList = 
          _customerTypeRepository.GetList();
       CustomerFormModel model = new CustomerFormModel(customer);
       model.AddCustomerTypes(customerTypeList );
    }
}
This seems wrong to me as I've got repositories in the Controller and in Customer. It just appears logical to me that there should be a segragated access layer for CustomerType. I.e. CustomerType.GetList():
public class CustomerType : ValueObject
{
   // ... Previous Code
   private static ICustomerTypeRepository _customerTypeRepository = IoC.Resolve(..);
   public static IEnumerable<CustomerType> GetList()
   {
      _customerTypeRepository.GetList();
   }
}
So, which is the way I should be exposing the CustomerType objects through the ICustomerTypeRepository to the CustomerController?