Итак, у меня есть такая модель:
public class EventViewModel
{
public string Title { get; set; }
public List<EventParticipant> Participants { get; set; }
}
public class EventParticipant
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Strength { get; set; }
public string Losses { get; set; }
}
и у меня есть форма, в которой есть поле для:
- Title
- Multiple участники
<form asp-controller="Event" asp-action="Create" method="post">
<input asp-for="Title" class="form-controls/>
<input asp-for="Participants[0].Name" class="form-controls/>
<input asp-for="Participants[0].Strength" class="form-controls/>
<input asp-for="Participants[0].Losses" class="form-controls/>
<input asp-for="Participants[1].Name" class="form-controls/>
<input asp-for="Participants[1].Strength" class="form-controls/>
<input asp-for="Participants[1].Losses" class="form-controls/>
<input type="submit" class="form-controls/>
</form>
Когда я go перехожу на страницу с указанным выше кодом, я получаю следующую ошибку:
System.NullReferenceException: 'Object reference not set to an instance of an object.'
с выделением первого ввода «Участники» .
Как сделать так, чтобы после публикации я мог получить доступ к списку участников, например:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(EventViewModel model)
{
foreach (var participant in model.Participants)
{
Debug.WriteLine("Name: " + participant.Name);
}
return RedirectToAction("Create");
}