c# - 我在视图中使用包含项目的列表,但它会引发转换错误,为什么?
问题描述
我正在使用带有 EF 和 Razor 页面的 .net 核心。
List<BloodGroups> ListBloodGroups;
public void OnGet()
{
BloodGroupsModel.ListBloodGroups = _donorsDBContext.GetBloodGroups();
}
血型.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; }
}
在视野中
<select asp-for="BloodGroupsModel.BloodGroupID" asp-items="Model.BloodGroupsModel.ListBloodGroups"></select>
但错误是
无法将通用列表转换为 IEnumerable。
我对此有点新并尝试过,但它不起作用我认为它应该起作用,因为从技术上讲,我正在调用基于模型的方法。
在 DonorsDBContext 类中
public List<BloodGroups> GetBloodGroups()
{
var list = new List<BloodGroups>();
list = this.BloodGroups.ToList();
return list;
}
解决方案
尝试这个:
public List<SelectListItem> GetBloodGroups()
{
return _donorsDBContext.Select( i=> new SelectListItem
{
Value = i.BloodGroupID.ToString(),
Text = i.BloodGroupName
}).ToList();
}
并更改您的血型:
public List<SelectListItem> ListBloodGroups {get; set;}
推荐阅读
- php - ArrayCollection 的问题,必须管理传递给选择字段的“Doctrine\Common\Collections\ArrayCollection”类型的实体
- python - 循环内带有空圆圈的散点图
- c# - 将“OnClick”事件添加到按钮后面的代码中
- android - 获取不使用 READ_PHONE_STATE 的 Android 设备 IMEI
- javascript - 验证是否选中或取消选中 Highcharts 饼图中的饼
- python - 使用 Python 抓取 URL 链接
- c# - 在 C# 中使用 Twilio 的桌面应用程序之间的电话呼叫
- python - 我想要一个按钮来执行双重命令一个命令将终止我当前的窗口,另一个命令将在 tkinter 中打开一个新窗口
- java - 如何避免对mysql中表的并发读取访问?
- python - pandas 根据 2 个单独行上的 LatLong 值计算距离