Итак, у меня есть класс модели представления, называемый «Отчеты», который выглядит следующим образом:
public class MemberReports
{
public Member Members { get; set; }
public Event Events { get; set; }
public MemberClubHours Memberclubhours { get; set; }
public VolunteerEvents Volunteerevents { get; set; }
}
. Он содержит членов, которые имеют отношение «многие ко многим» к событиям, MemberClubHours и добровольческим событиям. По сути, я хочу отобразить все данные, имеющиеся у меня на члене, в виде отчетов. Но мне трудно это сделать, какой-нибудь совет? вот все классы:
public class Member
{
public int Id { get; set; }
[Required]
[MaxLength(4, ErrorMessage = "PIN must be 4 numbers long"), MinLength(4, ErrorMessage = "PIN must be 4 numbers long")]
public string PIN { get; set; }
[Required]
[Display(Name ="First Name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Display(Name = "Date of Birth")]
public DateTime? Birthdate { get; set; }
public virtual ICollection<Event> Events { get; set; }
public virtual ICollection<VolunteerEvents> Vevents { get; set; }
public virtual ICollection<MemberClubHours> Hours { get; } = new HashSet<MemberClubHours>();
}
public class Event
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
[Display(Name = "Date")]
public DateTime? EventDate { get; set; }
[Required]
[Display(Name = "Start Time")]
public TimeSpan EventStartTime { get; set; }
[Required]
[Display(Name = "End Time")]
public TimeSpan EventEndTime { get; set; }
public int EventTotalTime{ get; set; }
public virtual ICollection<Member> Members { get; set; }
}
public class MemberClubHours
{
public int Id { get; set; }
public DateTime? ClockIn { get; set; }
public DateTime? ClockOut { get; set; }
[Required]
public Member Member { get; set; }
}
public class VolunteerEvents
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
[Display( Name ="Date")]
public DateTime? VEventDate { get; set; }
[Required]
[Display(Name = "Start Time")]
public TimeSpan VEventStartTime { get; set; }
[Required]
[Display(Name = "End Time")]
public TimeSpan VEventEndTime { get; set; }
public int VEventTotalTime { get; set; }
public virtual ICollection<Member> Members { get; set; }
}
вот контроллер, в котором я немного запутался, если я переберу классы, чтобы получить информацию для храниться в viewmodel?
public ActionResult Reports()//reports page
{
var Data = new MemberReports()
{
};
return View(Data);
}
и, наконец, вид здесь:
@model IEnumerable<ClubChallenge.ViewModels.MemberReports>
@{
ViewBag.Title = "Reports";
}
<table>
@foreach (var data in Model)
{
<tr>
<td></td>
</tr>
}
</table>