Выбор списка не является обязательным для просмотра значения модели после публикации - PullRequest
0 голосов
/ 17 мая 2019

При публикации из формы в проекте 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?

1 Ответ

0 голосов
/ 18 мая 2019

Так что после разбора этого фрагмента за раз я обнаружил, что проблема в том, что в моем свойстве SourceTypeID не было модификаторов get / set. Следующее изменение решило проблему.

public int SourceTypeId { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...