DropDown List пуст при создании вида из модели - PullRequest
0 голосов
/ 04 октября 2019

У меня есть свойство enum в Car.

public class Car
{
   public TypeCar TypeCar { get; set; }
}

Перечисление

public enum TypeCar
{
   petrol,
   diesel,
   electric   
}

При генерации CRUD с Visual Studio я вижу, как значения правильно отображаются в Index, но когда я хочу создать новую машину, сгенерированный выпадающий список пуст. Разве это не должно заполнять значения бензин, дизель, электричество?

<div class="form-group">
    <label asp-for="TypeCar" class="control-label"></label>
    <select asp-for="TypeCar" class="form-control"></select>
    <span asp-validation-for="TypeCar" class="text-danger"></span>
</div>

Ответы [ 2 ]

2 голосов
/ 04 октября 2019

Попробуйте это:

<div class="form-group">
    <label asp-for="TypeCar" class="control-label"></label>
    <select asp-for="TypeCar" asp-items="Html.GetEnumSelectList<TypeCar>()" class="form-control"></select>
    <span asp-validation-for="TypeCar" class="text-danger"></span>
 </div>

Отредактировано: вы должны импортировать свой класс Enum как @using TypeCar

0 голосов
/ 04 октября 2019

Попробуйте следующее.

В OnGet () или OnGetAsync () вашего PageModel:

ViewData["CarTypes"] = new SelectList(Enum.GetValues(typeof(TypeCar)).Cast<TypeCar>().Select(s => s.ToString()).ToList());

В вашем представлении:

<div class="form-group">
  <label asp-for="TypeCar" class="control-label"></label>
  <select asp-for="TypeCar" class="form-control" asp-items="ViewBag.CarTypes">
    <option value=""></option>
  </select>
  <span asp-validation-for="TypeCar" class="text-danger"></span>
</div>
...