Viewbag , 从 hashset 打印数据
Viewbag , Printing data from hashset
我想打印从控制器收到的 viewbag,但我不能,我在控制器中的代码在这里:
var qry = from c in db.Customers
join o in db.Orders on id equals o.CustomerID
where id == o.CustomerID
select new {o.OrderID ,o.OrderDetails};
ViewBag.OrdersForUser = qry.ToList();
我认为的打印代码是:
@foreach (var order in ViewBag.OrdersForUser)
{
@order
}
现在打印的文字是:
{ OrderID = 1, OrderDetails = System.Collections.Generic.HashSet`1[FinalProject.Models.OrderDetail] }
OrderID的类型是int,OrderDeatils的类型是ICollection
我想打印散列集中的数据(而不是像现在这样的 decleration),并将订单 ID 拆分为其他 space.
ViewBag 是动态类型。并且您分配了一个匿名类型,然后您无法在视图端获取它的类型。
控制器
var qry = from c in db.Customers
join o in db.Orders on id equals o.CustomerID
where id == o.CustomerID
// in this line, what is the type of list ? You should define its type
// for example:
select new SomeType{OrderId = o.OrderID ,OrderDetails = o.OrderDetails}
//select new {o.OrderID ,o.OrderDetails};
ViewBag.OrdersForUser = qry.ToList();
然后在你的
查看
@foreach (var order in (List<SomeType>)ViewBag.OrdersForUser)
{
@order
}
- 你return来自控制器的列表,不应该是匿名类型。 (select 新的 SomeType)
- 在view中,你应该定义viewbag类型。 (列表)ViewBag.OrdersForUser)
评论后
或者,如果您的实体之间存在关系定义,则您只能获取如下订单详细信息:
控制器:
ViewBag.OrdersForUser = db.OrderDetails.Where(d=>d.Order.CustomerId == id);
查看:
@foreach (var orderDetail in (List<OrderDetail>)ViewBag.OrdersForUser)
{
@orderDetail.Order.xxx
}
我想打印从控制器收到的 viewbag,但我不能,我在控制器中的代码在这里:
var qry = from c in db.Customers
join o in db.Orders on id equals o.CustomerID
where id == o.CustomerID
select new {o.OrderID ,o.OrderDetails};
ViewBag.OrdersForUser = qry.ToList();
我认为的打印代码是:
@foreach (var order in ViewBag.OrdersForUser)
{
@order
}
现在打印的文字是:
{ OrderID = 1, OrderDetails = System.Collections.Generic.HashSet`1[FinalProject.Models.OrderDetail] }
OrderID的类型是int,OrderDeatils的类型是ICollection 我想打印散列集中的数据(而不是像现在这样的 decleration),并将订单 ID 拆分为其他 space.
ViewBag 是动态类型。并且您分配了一个匿名类型,然后您无法在视图端获取它的类型。
控制器
var qry = from c in db.Customers
join o in db.Orders on id equals o.CustomerID
where id == o.CustomerID
// in this line, what is the type of list ? You should define its type
// for example:
select new SomeType{OrderId = o.OrderID ,OrderDetails = o.OrderDetails}
//select new {o.OrderID ,o.OrderDetails};
ViewBag.OrdersForUser = qry.ToList();
然后在你的
查看
@foreach (var order in (List<SomeType>)ViewBag.OrdersForUser)
{
@order
}
- 你return来自控制器的列表,不应该是匿名类型。 (select 新的 SomeType)
- 在view中,你应该定义viewbag类型。 (列表)ViewBag.OrdersForUser)
评论后
或者,如果您的实体之间存在关系定义,则您只能获取如下订单详细信息:
控制器:
ViewBag.OrdersForUser = db.OrderDetails.Where(d=>d.Order.CustomerId == id);
查看:
@foreach (var orderDetail in (List<OrderDetail>)ViewBag.OrdersForUser)
{
@orderDetail.Order.xxx
}