0

谁能指出我正确的方向,如何使用 viewbag 将列表中的一列数据传递给强类型视图。我正在使用强类型视图传递 CustomerSites 列表。我还想在列表中的每个 CustomerSite 旁边显示一个 CustomerName。

我尝试了以下方法,但是当控制器返回客户列表时,它不允许我从视图访问 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>
}
4

2 回答 2

1

我鼓励您将由 CustomerSites 和 CustomerNames 构建的 ViewModel 传递给 View。为什么不从由客户名称和站点组成的数据库对象中获取?

于 2011-05-06T13:12:30.423 回答
0

在我看来,它ViewBag.customer拥有一个Customers不是单个Customer对象的集合。在您的查询中,您应该有where一部分。

于 2011-05-06T13:12:03.180 回答