我在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>
尝试一下:
<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>
尝试以下操作。
在您的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>