I am using .net core with EF and Razor pages.
List<BloodGroups> ListBloodGroups;
public void OnGet()
{
BloodGroupsModel.ListBloodGroups = _donorsDBContext.GetBloodGroups();
}
bloodgroups.cs
public class BloodGroups
{
public BloodGroups()
{
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int BloodGroupID { get; set; }
public string BloodGroupName { get; set; }
public List<BloodGroups> ListBloodGroups { get; set; }
}
in view
<select asp-for="BloodGroupsModel.BloodGroupID" asp-items="Model.BloodGroupsModel.ListBloodGroups"></select>
but error is
Cannot convert generic list to IEnumerable.
I a bit new to this and tried but it's not working I think it should have worked because technically I am calling methods based on model.
In DonorsDBContext class
public List<BloodGroups> GetBloodGroups()
{
var list = new List<BloodGroups>();
list = this.BloodGroups.ToList();
return list;
}
Change your code like below:
<select asp-for="BloodGroupsModel.BloodGroupID"
asp-items="@(new SelectList(Model.BloodGroupsModel.ListBloodGroups,"BloodGroupID","BloodGroupName"))"></select>
Be sure ListBloodGroups
in your backend contains data.
My testing data in backend:
public BloodGroups BloodGroupsModel { get; set; }
public IActionResult OnGet()
{
BloodGroupsModel = new BloodGroups();
BloodGroupsModel.ListBloodGroups = new List<BloodGroups>()
{
new BloodGroups(){BloodGroupID=1,BloodGroupName="aaa"},
new BloodGroups(){BloodGroupID=2,BloodGroupName="bbb"},
new BloodGroups(){BloodGroupID=3,BloodGroupName="ccc"}
};
return Page();
}