var s = myInventoryEntities.p_Forms().Select(i => new { i.Customer, i.Order_ID }).Distinct().ToList();
ViewBag.MyData = s;
return View();
这给了我
{ Customer = "Bob", Order_ID = 2644550 }
在我的剃刀代码中
我遍历数据
@foreach ( var x in @ViewBag.MyData){
x.Customer // Does not exist! :(
}
请帮忙!
'object'不包含'Customer'的定义
答案 0 :(得分:2)
ViewBag数据的生命周期非常有限。您确定要从设置ViewBag数据的相同操作方法进入此视图吗?
建议:尽量避免动态类型liek ViewData / ViewBag。坚持强类型使您的代码更易于阅读/维护。
如果您的域对象和要显示的内容相同,请不要打扰创建ViewModel。否则创建一个viewmodel
public class CustomerOrder
{
public string CustomerName
public int OrderID { set;get;}
//other properties as relevant (to the view)
}
并返回而不是ViewBag
public ActionResult GetOrders()
{
var s = myInventoryEntities.p_Forms().
Select(i => new CustomerOrder {
CustomerName= i.Customer,
OrderID=i.Order_ID
}).Distinct().ToList();
return View(s);
}
在视图中
@model IList<CustomerOrder>
@foreach ( var x in Model)
{
<p>@x.Customer</p>
}