Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在视图页面中使用foreach_C#_Asp.net Mvc_Razor_View_Foreach - Fatal编程技术网

C# 如何在视图页面中使用foreach

C# 如何在视图页面中使用foreach,c#,asp.net-mvc,razor,view,foreach,C#,Asp.net Mvc,Razor,View,Foreach,试图将已确认订单的列表传递到供应商页面(使用断点检查列表是否已通过),但在使用foreach在视图中显示列表时遇到问题 //SupplierController public ActionResult Index() { BuyABicycle_Entities db1 = new BuyABicycle_Entities(); IEnumerable<BicycleOrder> All_Orders = (from c in db1.BicycleOrders

试图将已确认订单的列表传递到供应商页面(使用断点检查列表是否已通过),但在使用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" />
}
//供应商控制器
公共行动结果索引()
{
BuyABicycle_Entities db1=新的BuyABicycle_Entities();
IEnumerable All_Orders=(从db1.BicycleOrders中的c开始)
其中c.Id>=1
选择c.ToList();
SupplierVM模型=新SupplierVM{allOrders=所有订单};
返回视图(模型);
}
//供应商虚拟机
公共类供应商
{
公共IEnumerable allOrders{get;set;}
}
视图/供应商/索引
@模型BicycleShop.ViewModels.SupplierVM
@{
ViewBag.Title=“供应商”;
//var订单=(IList)模型。;
//var orders=(List)Model.Order);
}
@使用(Html.BeginForm())
{
@foreach(Model.allOrders中的变量顺序)
{
@_订单.客户名称
}
}
这会抛出@foreach错误(Model.allOrders中的var\u Order) 编译器错误消息:CS0012:在未引用的程序集中定义了类型“IdeaBlade.EntityModel.Entity”。您必须添加对程序集“IdeaBlade.EntityModel,Version=6.1.7.0,Culture=neutral,PublicKeyToken=287b5094865421c0”的引用

我是否需要为顶部的列表声明一个变量,然后运行该变量


谢谢你的帮助。谢谢

也许razor把HTML和代码搞混了:

试试这个:

    @foreach (var _Order in Model)
    {
        <text>
        <tr>
            <td>@Html.TextBoxFor(x => x.allOrders)</td>
            <td>@_Order.allOrders</td>
            @<td>@Html.TextBoxFor(x => x.CustomerName, new { @readonly = true }) </td>
            @foreach(var item in _Order)
             {
                 item.ItemProp <br />
             }
        </tr>
        </text>
    }
@foreach(模型中的变量顺序)
{
@Html.TextBoxFor(x=>x.allOrders)
@_订单
@@TextBoxFor(x=>x.CustomerName,new{@readonly=true})
@foreach(按顺序排列的var项目)
{
item.ItemProp
} }

{}
razor内部,如果您想将HTML放入其中,则它希望所有内容都是代码-多行使用
一行使用
@:

您的视图将模型指定为
IEnumerable
。因此,要迭代订单,首先必须迭代供应商:

@foreach (var supplier in Model)
{
    foreach (var order in supplier.allOrders)
    {
        ...
    }
}
然而,似乎您实际上并没有传递许多
SupplierVM
实例,而只是传递了一个实例。因此,应将视图的模型更改为:

@model BicycleShop.ViewModels.SupplierVM
然后,您可以直接迭代订单:

@foreach (var order in Model.allOrders)
{
    ...
}

很抱歉,4个错误都不行。我不确定是否需要第二个foreach,我只是想弄清楚。该模型包含一个BicycleOrders-allOrders列表。我想循环并输出每个订单的“CustomerName、CustomerAddress、Model”等,所有这些都在每个BicycleOrderTanks中找到,以便回复chris。是的,那是我的错误。供应商VM只包含订单,只是为了保持整洁,不管怎么说,它尝试了您的建议,但不幸的是,它在更新主Q时仍然不起作用。在未引用的程序集中定义了“IdeaBlade.EntityModel.Entity”类型。如果你有更多的想法,那将是伟大的,这完全是无关的。这是代码中某个地方的实际错误。也就是说,你在某个地方引用了一个类,
Entity
来自
IdeaBlade.EntityModel
命名空间,并且该命名空间不存在于您的引用中,或者该命名空间不包含名为
Entity
的类。啊,是的,当我应该在model文件夹中填充该类时,我正在使用实体框架中的表。再次感谢