2017-09-05 2 views
-1

J'ai deux tables dans une vue unique, la première affichant les résultats d'une requête utilisant ce contrôleur:Afficher deux tables dans la vue en utilisant les données du même modèle, l'une contenant des doublons et l'autre des lignes distinctes

Controller:

public ActionResult ResultDetails(int? id) 
{ 
var tenders = from t in db.Tenders.Include(t => t.Compendium).Include(t => t.TrainerRegistration) select t;    

tenders = tenders.Where(q => q.Compendium.InstitutionID==id); 

return View(tenders.ToList()); 
} 

Affichage des données dans le premier tableau est assez simple. Cependant, quand j'ai essayé d'utiliser la même syntaxe de rasoir échafaudée dans ma deuxième table, ce retour des lignes en double en particulier dans mon item2.TrainerRegistration.NTTC colonne

@foreach (var item2 in Model) 
{ 
    <tr> 
     <td nowrap> 
      @Html.DisplayFor(modelItem => item2.TrainerRegistration.Trainer.TrainerName) 
     </td> 
     <td nowrap> 
      @Html.DisplayFor(modelItem => item2.TrainerRegistration.Qualification.Title) 
     </td> 
     <td nowrap> 
      @Html.DisplayFor(modelItem => item2.TrainerRegistration.NTTC) 
     </td> 
    </tr> 
} 

la requête dans le contrôleur serait vraiment retourner les doublons, mais comment puis-je supprimer ces lignes en double dans la deuxième table? Je l'ai essayé d'ajouter GroupBy() ou Distinct() à ma propriété NTTC mais je ne peux pas le faire fonctionner de cette façon ou ses autres variantes:

@foreach (var item2 in Model.GroupBy(x => x.TrainerRegistration.NTTC).ToList()) 

Après plusieurs suppositions, modifier l'argument à l'intérieur @foreach serait toujours affecter le @ Html.DisplayFor (modelItem => item2. ****) d'une manière ou d'une autre. J'ai fini de deviner à ce stade et je serais vraiment reconnaissant si quelqu'un pouvait me montrer la bonne façon de faire cela.

Répondre

0

j'ai pu résoudre mon problème en utilisant d'abord(), sur les lignes où TrainerRegistrationID est répété

@foreach (var item2 in Model.GroupBy(x => x.TrainerRegistrationID).Select(y => y.First()))