Я полагаю, что единственный способ сделать это с помощью модели составного представления (что не обязательно плохо), так что-то вроде:
public class MyControllerActionViewModel
{
public IList<Contact> Contacts { get; set; }
public IList<Client> Clients { get; set; }
public IList<Vendor> Vendors { get; set; }
}
Мы часто используем этот подход, чтобы получить больше элементов в представлении, когда это необходимо, и я не вижу плохой практики в использовании этих пользовательских представлений, когда это необходимо.
Надеюсь, это поможет!