Передача данных из представления через модель представления в контроллер всегда возвращает нуль - PullRequest
0 голосов
/ 16 января 2019

При передаче данных из моей формы в мой контроллер значение всегда равно нулю. Модель представления содержит 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...