Я пытаюсь передать сложную структуру данных из контроллера в просмотр и обратно в контроллер, который содержит списки.Я могу видеть элементы списка в представлении.Я хочу отредактировать их и отправить обратно на контроллер.Я могу редактировать некоторые свойства, но для списков я получаю нулевое значение в контроллере.
Вот пример (симуляция) того, чего я пытаюсь достичь:
Рассмотрим модель -
using System.Collections.Generic;
namespace WebApplication1.Models
{
public class StudentViewModel
{
public string StudentId { get; set; }
public string FeedBack { get; set; }
public List<ScoreCard> ScoreCards;
}
public class ScoreCard
{
public string Subject { get; set; }
public string Marks { get; set; }
}
}
Контроллер -
public class StudentController : Controller
{
public ActionResult Index()
{
var model = new StudentViewModel();
model.StudentId = "Some Student";
model.ScoreCards = new List<ScoreCard>
{
new ScoreCard()
{
Marks = "0",
Subject = "English"
},
new ScoreCard()
{
Marks = "0",
Subject = "Maths"
}
};
return View("View", model);
}
public ActionResult SubmitScore(StudentViewModel model)
{
/* Some Code */
}
}
Просмотр -
@model WebApplication1.Models.StudentViewModel
@{
ViewBag.Title = "Title";
}
@using (Html.BeginForm("SubmitScore", "Student", FormMethod.Post))
{
@Html.DisplayName(@Model.StudentId)<br />
<label>Comment:</label><br/>
@Html.EditorFor(m => m.FeedBack, new { htmlAttributes = new { @type = "text", id = @Model.FeedBack} })<br />
for (var i = 0; i < @Model.ScoreCards.Count; i++)
{
@Html.DisplayName(@Model.ScoreCards[i].Subject) <br/>
@Html.EditorFor(m => m.ScoreCards[i].Marks, new { htmlAttributes = new { @type = "number", @min = 0, id = @Model.ScoreCards[i].Marks} })<br />
}
<input class="btn btn-primary" type="submit" value="Submit" />
}
При запуске приложения -
![enter image description here](https://i.stack.imgur.com/YFdNG.png)
Когда я нажимаю "Отправить", я вижу model.FeedBack
, но список имеет значение NULL.
![enter image description here](https://i.stack.imgur.com/LGsCM.png)
Нечто подобное достигается в этом вопросе и его ответе;Я не уверен, что именно мне здесь не хватает.