任何人都可以指出我如何使用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>
}
答案 0 :(得分:1)
我建议您转到查看从CustomerSites和CustomerNames构建的ViewModel。为什么不从包含客户名称和站点的数据库对象中获取?
答案 1 :(得分:0)
在我看来,ViewBag.customer
拥有Customers
而非单个Customer
对象的集合。在您的查询中,您应该有一个where
部分。