При публикации из формы в проекте ASP.NET Core MVC выбранный элемент ввода не привязывается к значению в модели.
Я следовал нескольким руководствам, которые все говорят одно и то же длякак это сделать, включая официальное руководство MSDN по выбору вспомогательного тега ввода, но выбранное значение по-прежнему не привязано к моей переменной модели представления.
cshtml:
<form asp-action="Search" method="post">
<select asp-for="SourceTypeId" asp-items="Model.SpellSources"></select>
</form>
ViewModel:
public class SpellsVM
{
public string Title = "Spells";
public List<CheckBoxModel> Eras { get; set; }
public List<CheckBoxModel> Classes { get; set; }
public List<SelectListItem> SpellSources { get; set; }
public List<SpellSearchResult> SpellSearchResults { get; set; }
public int SourceTypeId;
public SpellsVM()
{
SpellSources = new List<SelectListItem>();
Eras = new List<CheckBoxModel>();
Classes = new List<CheckBoxModel>();
}
}
Действие:
[HttpPost]
public IActionResult Search(SpellsVM vm)
{
vm.SourceTypeId // Always ZERO
return View(vm);
}
vm.SourceTypeId
всегда равно нулю при публикации.Я вижу значение, поступающее в Request.Form
, например:
Request.Form["SourceTypeId"] = 2
Но почему оно не отображается в значении ViewModel
SourceTypeId
?