У меня возникают проблемы с отображением списка данных, в котором содержатся два объекта базы данных.
Мое представление строго типизировано для модели представления, которая включает в себя список клиентов и список сайтов клиентов (каждый из которых хранится в ихсобственный стол).В настоящее время я использую два для каждой статистики для отображения обоих списков, но на самом деле мне нужен один список, который содержит оба объекта, в двух словах, это список сайтов клиентов, который также содержит имена клиентов из таблицы клиентов.
Это моя модель представления
namespace CustomerDatabase.WebUI.Models
{
public class CustomerSitesListViewModel
{
public IList<CustomerSite> CustomerSites { get; set; }
public PagingInfo PagingInfo { get; set; }
public IList<Customer> customers { get; set; }
}
}
Это код, который я сейчас использую в представлении, сайты клиентов содержатся в частичном представлении, было бы идеально, если бы я мог добавить клиентаимя в частичном представлении, но единственный способ узнать, как получить доступ к обоим объектам, - это использовать два для каждого оператора
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CustomerDatabase.WebUI.Models.CustomerSitesListViewModel> " %>
<% foreach (var customer in Model.customers) { %>
<%:customer.CustomerName%></li>
<%} %>
<% foreach (var customerSite in Model.CustomerSites) { %>
<% Html.RenderPartial("CustomerSiteSummary", customerSite); %>
<%} %>
Это мое частичное представление
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CustomerDatabase.Domain.Entities.CustomerSite>" %>
<div class="item">
<div class="customer-list-item">
<%: Model.AddressLine1%>
<%: Model.AddressLine2%>
<%: Model.AddressLine3%>
<%: Model.Town%>
<%: Model.County%>
<%: Model.Postcode%>
<%: Model.ContactName%>
<%: Model.ContactNo%>
<%: Model.ContactEmail%>
Это мой код контроллера, который устанавливает два списка.
public ViewResult List([DefaultValue(1)] int page)
{
var customerSitesToShow = customerSiteRepository.CustomerSites;
var customersToShow = customerRepository.Customers;
var viewModel = new CustomerSitesListViewModel
{
CustomerSites = customerSitesToShow.Skip((page - 1) * PageSize).Take(PageSize).ToList(),
customers = customersToShow.Skip((page - 1) * PageSize).Take(PageSize).ToList(),
PagingInfo = new PagingInfo
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = customerSitesToShow.Count()
}
};
return View(viewModel); //Passed to view as ViewData.Model (or simply model)
}
}
}
Есть ли другой способ получить доступ к обоим объектам из представления без для каждой характеристики, чтобы я мог объединить два списка вчастичный вид.
<% foreach **(var customer in Model.customers)** { %>
Спасибо за любой совет, который может предложить любой.