Я создал форму, которая редактирует список заметок. Форма отображает идентификатор каждой заметки вместе с сообщением, которое она содержит. Это работает.
Проблема в том, что после изменения сообщений в этих заметках и отправки изменений форма отправляется, но я получаю пустой список моделей из параметра метода действия HttpPost.
Я просмотрел много похожих вопросов, но общая проблема заключалась в том, что модель представления не содержала общедоступных свойств. Мой делает. Я не вижу, где проблема. Я новичок в программировании, поэтому я прошу прощения, если проблема слишком очевидна.
// Моя модель просмотра
public class NoteViewModel
{
public int Id { get; set; }
public string Message { get; set; }
}
// Метод My Post Action
[HttpPost]
public IActionResult EditNotes(List<NoteViewModel> model)
{
foreach (var item in model)
{
// Create a note, and copy values from model
Note note = new Note
{
Id = item.Id,
Message = item.Message
};
// Update note in database.
noteRepository.Update(note);
}
return RedirectToAction("NotePage", "Home");
}
// My View EditNote.cshtml
@model List<MyWebsite.ViewModels.NoteViewModel>
<form asp-action="EditNotes" method="post">
@foreach (var note in Model)
{
<label asp-for="@note.Id">@note.Id</label>
<label asp-for="@note.Message">Message</label>
<input asp-for="@note.Message" value="@note.Message" />
}
<button type="submit" class="btn btn-success">Submit</button>
</form>
Я ожидаю получить список моделей, содержащих примечания, но здесь я получу пустой список
public IActionResult EditNotes(List<NoteViewModel> model)
{
// model is empty
// model.Count() gives 0.
}