Как передать один столбец данных в виде списка с помощью viewbag в строго типизированное представление

Кто-нибудь может указать мне правильное направление относительно того, как передать один столбец данных в списке, используя viewbag в строго типизированное представление. Я передаю список CustomerSites, используя строго типизированное представление. Я также хотел бы отображать CustomerName рядом с каждым CustomerSite в списке.

Я пробовал следующий подход, но поскольку контроллер возвращает список клиентов, он не позволяет мне получить доступ к свойству CustomerName из представления, возможно ли получить доступ к этому свойству из представления?

public ViewResult Index()
    {
        var q = from a in db.Customers.ToList()
        select a;
        ViewBag.customer = q;
        return View(db.CustomerSites.ToList());
    }

@model IEnumerable<trsDatabase.Models.CustomerSite>
@foreach (var customer in Model)
{
<tr>
 <td>
        @ViewBag.customer.CustomerName
   </td>
   <td>
        @customer.UnitNo
    </td>
    <td>
        @Truncate(customer.StreetName, 25)
    </td>
    <td>
        @customer.Town
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=customer.Id }) |
        @Html.ActionLink("Details", "Details", new { id=customer.Id }) |
        @Html.ActionLink("Delete", "Delete", new { id=customer.Id })
    </td>
</tr>
}

2 ответа

Я бы посоветовал вам перейти к View ViewModel, созданному из CustomerSites и CustomerNames. Почему вы не получаете от объекта БД, который состоит из имени клиента и сайта?

Мне кажется, что ViewBag.customer содержит коллекцию Customers ни одного Customer объект. В вашем запросе вы должны иметь where часть.

Другие вопросы по тегам