2017-10-25 9 views
-1

Ich habe Seite, die Bestelldetails (salesLineInvoice) ist und unter jeder Bestellung Details sollte ich Sendungsdetails (SalesShipment) für wieder jede Bestelldetails zeigen, und es gibt keine Beziehung btw Bestelldetails und Versanddetails und dann habe ich eine Abfrage für jede von ihnen, was eine Abfrage für Bestelldetails bedeutet, die auf ID basiert, um Daten für Bestelldetails abzurufen (Dieser Teil funktioniert gut) und eine Abfrage für Sendungsdetails, die auf der gleichen ID, die ich zuvor erwähnt, basiert um Daten für Sendungsdetails abzurufen (ich habe so viele Probleme mit diesem Teil) und dann habe ich in meiner Ansicht Foreach for Foreach, aber ich kann nicht herausfinden, warum der zweite Teil, der Sendungsdetails ist, nicht funktioniert. Ich meine, ich kann Ordre Details sehen, aber nichts erschien für Sendungsdetails. Habe ich etwas verpasst ?! oder sollte ich etwas anderes für dieses Szenario wie Vereinigung oder .. Kann mir jemand helfen oder mich in richtige Richtung :)
Problem mit Foreach zu Foreach C# MVC

+1

Da ist eine Menge zusätzlicher Informationen drin, also werde ich nur eine Aufnahme im Dunkeln machen. Verwenden Sie eine For-Schleife in Ihrer Ansicht, keine Foreach. Ansichten benötigen Objekte, auf die Index zugreifen kann, was in Foreach nicht möglich ist. – gilliduck

+0

Wenn du sagst, dass es nicht funktioniert, sagst du, dass irgendetwas in der inneren Foreach nicht gerendert wird? Sind Sie 100% sicher, dass Ihre Where-Klausel gültig ist und die richtigen Daten zurückgibt? Um es einfacher und lesbarer zu machen, würde ich die Sendungsdetails jedes Bestelldetails in die Controller-Aktion selbst laden, so dass meine Ansicht nicht viel C# Code – Shyju

+0

@Shyju Foreach für Ordre Details funktioniert gut und auch Where-Klausel und Ich kann Ordre Details im Browser 100% sicher sehen, aber für Sendungsdetails funktioniert nichts und ich kann nichts über Sendungsdetails im Browser sehen – HellorhighWater

Antwort

0
foreach (var FieldShipment in Model.ShipmentDetailLineCloses 
    .Where(p=>p.DocumentNoInvoiceOrdreDeliveryClose == Field.DocumentSalesInvoice).ToList())  
{ 

Der Code innerhalb dieser foreach ist nichts da Model.ShipmentDetailLineCloses.Where(p=>p.DocumentNoInvoiceOrdreDeliveryClose == Field.DocumentSalesInvoice).ToList() Ausgeben nicht zurückkehrt jede Daten (vorausgesetzt, Sie haben verifiziert, dass .Count 0 war). So foreach funktioniert genau wie erwartet - es gibt keine Daten in der List, so dass es effektiv nichts tut.

Als solche müssen Sie prüfen, wie Model.ShipmentDetailLineCloses ist ausgefüllt - da Ihr Problem ist da und nicht in der Ansicht selbst.

+0

ja du hast Recht, aber es gibt keine Beziehung btw Sendungsdetails und Ordre Details und seine dosent Angelegenheit, welche Spalte ich setzen ID wird es nicht funktionieren und sprechen mit Ordre Details, also wie sollte ich Sendung Details für jeden ordre zeigen oder wie kann Ich löse das – HellorhighWater

+0

Wenn es keine Beziehung zwischen den Tabellen gibt, und keine zuverlässige Möglichkeit, ihnen beizutreten, dann denke ich, dass Sie Pech haben. Aber das hat nichts mit Ihrer 'foreach' zu tun. – mjwills

+0

: ((Ja, du hast Recht, tnx für deine Hilfe und deine Zeit, nur letzte Frage, wat ich separate Sendungsdetails von Ordre Details Controller und Ansicht und machen Sie eine für sich selbst als kann ich verwandt/assoziiert Ordre Details stattdessen. Tun Sie denke, es ist möglich, obwohl es keine Beziehung gibt! – HellorhighWater