Problème avec NVelocity, foreach et deux listes
-
10-07-2019 - |
Question
existe-t-il un moyen simple de résoudre le problème suivant?
Supposons que je récupère un livre IList avec certains livres de mon modèle dans la manette. Maintenant, je souhaite enrichir la sortie et extraire un aperçu d’Amazon avec un autre modèle issu d’un cadre externe et obtenir un autre IList.
Maintenant, je mets les deux IListes dans un sac de propriétés.
Dans NVelocity, j'utilise un #foreach pour la liste de lecture, mais comment puis-je accéder à amazonbooklist avec le bon aperçu? Je ne peux pas utiliser $ amazonbook [index], où index serait l'isbn. Dois-je vraiment mettre les deux listes dans une grande liste avec un simple objet ne contenant que les deux autres objets?
N'oubliez pas que les deux modèles proviennent de cadres différents et ne peuvent pas être placés dans un seul cadre. Les deux cadres doivent rester séparés. J'essaie de résoudre le problème de NVelocity et bien sûr, ce problème n'est qu'un exemple, nous ne vendons pas de livres;)
La solution
Il existe peut-être une solution plus simple, mais je créerais une troisième classe comme celle-ci
class BookList{
MyBookObject a;
AmazonBookObject b;
}
une liste de cette troisième classe peut être transmise à votre vue à la fois.
Autres conseils
Regardez ici: http://www.castleproject.org/monorail/faq.html#NVelocity % 20View% 20Engine
Vous pouvez accéder à un dictionnaire dans NVelocity via
$amazonbook.get_Item($index)