ich ein Modell Course, ein Modell-Komponente und ein Modell Bewertung haben:Eine Liste in einer Ansicht MVC 4
public class Course
{
public virtual int CourseId { get; set; }
public virtual string Name { get; set; }
public virtual List<Component> Components { get; set; }
public virtual List<UserProfile> Users { get; set; }
public virtual List<Evaluation> Evaluation { get; set; }
}
public class Component
{
public virtual int ComponentId { get; set; }
public virtual int CourseId { get; set; }
public virtual Course Course { get; set; }
public virtual string NameComp { get; set; }
}
public class Evaluation
{
public virtual int EvaluationId { get; set; }
public virtual int CourseId { get; set; }
public virtual Course Course { get; set; }
public virtual int UserId { get; set; }
public virtual UserProfile User { get; set; }
public virtual int Grade { get; set; }
}
ich mit allen Benutzern in einer Ansicht eine Tabelle zeigen, müssen alle Komponenten erstellt und die Note für jeden. Ich habe versucht, auf diese Weise:
@model SGP.Models.Course
<table>
<tr>
<th>
Username
</th>
@foreach (var x in Model.Components)
{
<th>
@Html.DisplayFor(modelItem => x.NameComp)
</th>
}
<th></th>
</tr>
@foreach (var item in Model.Evaluation)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.User.UserName)
</td>
@foreach (var x in Model.Components)
{
<td>
@Html.DisplayFor(modelItem => item.Grade)
</td>
}
<td>
</td>
</tr>
}
Aber das gibt mir alle Komponenten in einer Spalte, und ich brauche eine Spalte für jede Komponente und eine Note für jeden:
Der Code das habe ich gibt:
Username - Component1Component2Component3
Test - 12
Test - 13
Test - 10
(example of result with username and grades)
Und ich brauche:
Username - Component1 - Component2 - Component3
Test - 12 - 13 - 10
(example of result with username and grades)
Wie kann ich das tun?
Dank
Das Modell sieht nicht korrekt aus. Im Idealfall sollte die Auswertung nach UserId gruppiert werden. Es sollte IGrouping sein Auswertungen oder Liste >> Auswertungen. –
vijayst