从模型生成视图时,DropDown列表为空

问题描述 投票:0回答:2

我在Car中有一个枚举属性。

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

枚举是

public enum TypeCar
{
   petrol,
   diesel,
   electric   
}

使用Visual Studio生成CRUD时,我可以看到在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>
c# asp.net-core tag-helpers
2个回答
1
投票

尝试一下:

<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>

0
投票

尝试以下操作。

在您的PageModel的OnGet()或OnGetAsync()中:

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>
© www.soinside.com 2019 - 2024. All rights reserved.