DropDownList - не возвращать выбранное значение на измененной странице скаффолдов. - PullRequest
0 голосов
/ 01 февраля 2020

Я довольно новичок в Razor и использую шаблоны по умолчанию. У меня есть ViewModel, которая содержит три модели:

public class CarAndOwnerViewModel
    {
        public IEnumerable<SelectListItem> Cars { get; set; }
        public SelectListItem SelectedCar { get; set; }
        public OwnerModel Person{ get; set; }
    }

Я использую эту ViewModel в моем методе создания. Чтобы получить список автомобилей, которые я использую:

@Html.DropDownListFor(Model => Model.SeletedCar, new SelectList(Model.Cars, "Value", "Text", Model.Cars))

Когда я отправляю этот выпадающий список, значение CarAndOwnerViewModel.SelectedCar равно нулю. У меня есть текстовое поле, которое содержит следующее, и оно есть в CarAndOwnerViewModel.Owner.Name:

<input asp-for="Owner.Naame" class="form-control" />

То, что я заполнил в этом поле ввода, передается. Я не уверен, почему поля ввода работают, а поле выбора - нет.

1 Ответ

0 голосов
/ 01 февраля 2020

Проблема заключалась в том, что SelectedCar должно быть int вместо SelectedItem

Изменение класса на

public class CarAndOwnerViewModel
    {
        public IEnumerable<SelectListItem> Cars { get; set; }
        public int SelectedCar { get; set; }
        public OwnerModel Person{ get; set; }
    }

Исправлена ​​проблема.

...