我习惯于在经典中使用嵌套循环。来自第一个记录集的数据将传递到第二个记录集。我将如何在MVC中完成同一件事?据我所知,我只能将一个模型传递给我的视图。

  <%
  rs.open "{Call usp_SalesOrder}",oConn
  Do While (NOT rs.EOF)
  %>
    <div><% = rs("SalesOrderNumber")%></div>

    <%
    rs2.open "{Call usp_SalesOrderLines(" & rs("SOKey") & ")}",oConn
    Do While (NOT rs.EOF)
    %>

      <div><% = rs2("SalesOrderLineNumber")%></div>

    <%
    rs2.MoveNext
    Loop
    rs2.close
    %>
  <%
  rs.MoveNext
  Loop
  rs.close
  %>

最佳答案

我想说,内森的职位是一个好的开始。这是我从头到尾要做的事情。

这就是我做模型的方式:

public class SalesOrderModel
{
    public List<SalesOrderLines> SOLines = new List<SalesOrderLines>();
    public List<SalesOrder> SOHeader = new List<SalesOrder>();
}


然后,我的控制器将执行以下操作:

public ActionResult Index()
{
        List<SalesOrder> SalesOrder = callSalesOrderUSP.ToList();
        List<SalesOrderLines> SalesOrderLines = new List<SalesOrderLines>();

        foreach (var thing in SalesOrder)
        {
            SalesOrderLines.AddRange(callSalesOrderLinesUSP(thing.SOKey).ToList());
        }

        SalesOrderModel salesOrderModel = new SalesOrderModel
        {
            SOHeader = SalesOrder,
            SOLines = SalesOrderLines
        };



        return View(salesOrderModel);
}


然后,您可以执行以下操作:

@foreach(var something in Model.SOHeader)
{
    foreach (var thing in Model.SOLines.Where(i => i.SOKey == something.SOKey))
    {
        //display info here
    }
}

10-01 22:34