繁体   English   中英

使用IEnumerable <Anonymous Type> 在动态类型视图中

[英]Using an IEnumerable<Anonymous Type> within Dynamic Type View

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'的定义

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>
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM