I want to replace the default Create View and Controller for my modelclass CourseEvent
which should be able to handle request containing child elements. The child elements are of type public virtual ICollection<CourseEventDate>
.
Model Class CourseEvent
public partial class CourseEvent
{
public CourseEvent()
{
this.CourseEventDates = new HashSet<CourseEventDate>();
this.UsersInCourseEvents = new HashSet<UsersInCourseEvent>();
}
public int CourseEventId { get; set; }
public Nullable<int> CourseFk { get; set; }
public Nullable<int> CourseEventDurationInDays { get; set; }
public Nullable<int> CourseEventDurationInHours { get; set; }
public Nullable<int> CourseEventPrice { get; set; }
public virtual Course Course { get; set; }
public virtual ICollection<CourseEventDate> CourseEventDates { get; set; }
public virtual ICollection<UsersInCourseEvent> UsersInCourseEvents { get; set; }
}
Model Class CourseEventDate
public partial class CourseEventDate
{
public int CourseEventDateId { get; set; }
public Nullable<int> CourseEventFk { get; set; }
public Nullable<System.DateTime> CourseEventDateTimeFrom { get; set; }
public Nullable<System.DateTime> CourseEventDateTimeTo { get; set; }
public virtual CourseEvent CourseEvent { get; set; }
}
If mvc would use JSON for the scafffolded POST requests, I would've considered sending a POST request using JavaScript, the JSON request would look something like this:
{
"CourseFk": "123",
"CourseEventDurationInDays": "2",
"CourseEventDurationInHours": "16",
"CourseEventPrice": "1234",
"CourseEventDate": [{
"CourseEventDateTimeFrom": "2015-05-05 08:00",
"CourseEventDateTimeTo": "2015-05-05 12:00"
},
{
"CourseEventDateTimeFrom": "2015-05-05 13:00",
"CourseEventDateTimeTo": "2015-05-05 17:00"
},
{
"CourseEventDateTimeFrom": "2015-05-06 08:00",
"CourseEventDateTimeTo": "2015-05-06 12:00"
},
{
"CourseEventDateTimeFrom": "2015-05-06 13:00",
"CourseEventDateTimeTo": "2015-05-06 17:00"
}]
}
So what's the best strategy/best practices to solve this problem?