2008-11-24 7 views
5

gibt es eine einfache Möglichkeit, das folgende Problem zu lösen.Problem mit NVelocity, foreach und zwei Listen

Nehmen wir an, ich hole ein IList mit einigen Büchern in meinem Controller von meinem Modell. Jetzt möchte ich die Ausgabe bereichern und eine Vorschau von Amazon mit einem anderen Modell aus einem externen Framework holen und eine weitere IList bekommen.

Jetzt lege ich beide ILists in eine Eigentumstasche.

In NVelocity verwende ich ein #foreach für die BookList, aber wie kann ich mit der richtigen Vorschau auf die Amazon Booklist zugreifen? Ich kann $ amazonbook [index] nicht verwenden, wobei index der isbn wäre. Muss ich wirklich beide Listen in eine große Liste mit einem einfachen onject, das nur die zwei anderen Objekte enthält?

Beachten Sie, dass beide Modelle aus verschiedenen Frameworks stammen und nicht in einem Framework platziert werden können. Beide Frameworks müssen getrennt bleiben. Ich versuche, das NVelocity Problem zu lösen und natürlich, dieses Problem ist nur ein Beispiel, wir verkaufen keine Bücher;)

Antwort

1

Es kann eine einfachere Lösung sein, aber ich würde eine dritte Klasse wie solche

class BookList{ 
     MyBookObject  a; 
     AmazonBookObject b; 
} 
erstellen

eine Liste dieser dritten Klasse könnte gleichzeitig an Ihre Ansicht übergeben werden.

+0

Also, das einen Teil der Steuerung ist oder sollte ich ein anderes Modell für diese Datenerfassung schaffen? –

+0

Ich würde sagen, das liegt an dir - du könntest das mit Linq und einem anonymen Typ machen, wenn du nicht willst, dass eine Klasse rumhängt, aber das schränkt deine Testbarkeit ein wenig ein. Die Verwendung eines Modells wäre mein Ansatz und die Delegierung dieser Funktionalität an einen separaten Dienst, um den Controller hell zu halten. – Bittercoder