Либо используйте модель составного представления при отображении сведений о клиенте, либо используйте AJAX для загрузки адресов при отображении сведений о клиенте.Я бы, вероятно, согласился с первым, поскольку оба тесно связаны, и кажется чрезмерным иметь контроллер или действие для только адресов (если вы никогда не отобразите их самостоятельно без другой информации).
public class ClientDetailsModel
{
public ClientDetails Details { get; set; }
public List<Address> Addresses { get; set; }
}
public ActionResult Details( int id )
{
var client = this.ClientRepository.GetByID( id );
var addresses = this.ClientRepository.GetAddressesForClient( client );
return View( new ClientDetailsModel { Details = client, Addresses = addresses } );
}
Это похоже на то, что я бы сделал, хотя более вероятно, что я извлеку только соответствующие свойства и заполнил класс плоской модели для каждой части клиент / адрес, а не использовал бы фактическую сущность из БД.AutoMapper может сильно помочь в этом.
Оказавшись в представлении, вы можете абстрагировать отображение адреса в частичное представление и отобразить его для каждого адреса, если вам нужно повторно использовать код.
... display client details...
@foreach (var address in Model.Addresses)
{
@Html.Partial( "_Address", address )
}