При передаче данных из моей формы в мой контроллер значение всегда равно нулю. Модель представления содержит 4 различные модели, которые необходимо отобразить и использовать, но при попытке связать обратно сообщение ничего не отправляется обратно в контроллер. При использовании только модели расписания это работает, но при использовании объекта расписания в модели представления свойства всегда равны нулю.
Контроллер:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> TimeTable([Bind("TeacherId,DateOfLesson,SubjectDetails,Test")]CourseViewModel timeTable)
{
if (ModelState.IsValid)
{
_context.Add(timeTable.ClassTime);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(TimeTable));
}
return View(timeTable);
}
ViewModel:
public class CourseViewModel
{
public IEnumerable<IndividualSubject> individualSubjects { get; set; }
public IEnumerable<Course> Courses { get; set; }
public IEnumerable<Student> User { get; set; }
public TimeTable ClassTime { get; set; }
public List<DateTime> CalDateTimes = new List<DateTime>();
}
Вид:
<table class="table table-hover table-dark">
<thead></thead>
<tbody>
@foreach (var item in Model.CalDateTimes)
{
<tr>
<th scope="row" style="width: 25%" class="border-right">
@item.Date.ToString("dddd dd MMM yyyy")
</th>
<td style="width: 75%">
<form asp-controller="IndividualSubjects" asp-action="TimeTable" method="post" role="form">
<input type="hidden" value="2" asp-for="ClassTime.TeacherId" name="TeacherId" />
<input type="hidden" value="@item" asp-for="ClassTime.DateOfLesson" />
<input type="hidden" value="200" asp-for="ClassTime.Duration" />
<select class="form-control border-dark custom-select-sm float-left" id="monthSelection" style="width: 20%" asp-for="ClassTime.SubjectDetails">
@foreach (var subjects in Model.individualSubjects)
{
<option value="@subjects.SubjectId">@subjects.Name</option>
}
</select>
<input type="submit" value="Add lesson" class="btn btn-primary float-right" />
</form>
</td>
</tr>
}
</tbody>
</table>