尝试将已确认的订单列表传递到供应商页面(已使用断点检查该列表是否已过去),只是在使用foreach在视图中显示列表时遇到问题。
//SupplierController
public ActionResult Index()
{
BuyABicycle_Entities db1 = new BuyABicycle_Entities();
IEnumerable<BicycleOrder> All_Orders = (from c in db1.BicycleOrders
where c.Id >= 1
select c).ToList();
SupplierVM model = new SupplierVM { allOrders = All_Orders };
return View(model);
}
//SupplierVM
public class SupplierVM
{
public IEnumerable<BicycleOrder> allOrders { get; set; }
}
Views/Supplier/Index
@model BicycleShop.ViewModels.SupplierVM
@{
ViewBag.Title = "Supplier";
//var orders = (IList<BicycleOrder>) Model.;
// var orders = (List<BicycleOrder>) Model.Order);
}
@using (Html.BeginForm())
{
<table>
@foreach (var _Order in Model.allOrders)
{
<text>
<tr>
<td>@_Order.CustomerName</td>
</tr>
</text>
}
</table>
<input type="submit" />
}
这会引发@foreach(Model.allOrders中的_Order)编译器错误消息:CS0012:类型'IdeaBlade.EntityModel.Entity'是在未引用的程序集中定义的。您必须添加对程序集'IdeaBlade.EntityModel,Version = 6.1.7.0,Culture = neutral,PublicKeyToken = 287b5094865421c0'的引用。
MVC4中的表的Foreach循环是否需要在顶部声明列表的变量,然后执行该操作
任何帮助表示赞赏。谢谢
您的视图将模型指定为IEnumerable<SupplierVM>
。因此,要遍历订单,您首先必须遍历供应商:
@foreach (var supplier in Model)
{
foreach (var order in supplier.allOrders)
{
...
}
}
但是,看来您实际上并没有传递许多SupplierVM
实例,而只是传递了一个。因此,您应该将视图的模型更改为:
@model BicycleShop.ViewModels.SupplierVM
然后,您可以直接遍历订单:
@foreach (var order in Model.allOrders)
{
...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句