绑定到SelectList会生成名称ID不正确的错误,即使实体包含所述属性
本文关键字:错误 实体 属性 包含所 不正确 SelectList ID 绑定 | 更新日期: 2023-09-27 17:57:40
我正在控制器中绑定4个SelectList
,当我调出呈现Drop Down Lists
的页面时,我会看到错误:
DataBinding:"System.Boolean"不包含名为"ID"的属性。
但在它从中提取的实体中有一个ID
属性,所以我不确定出了什么问题。
代码错误弹出:
model.Sections = new SelectList(db.Sections.Select(s => s.ID > 0), "ID", "Name").ToList();
这是整个Section
的定义,正如你所看到的,有一个名为ID
的属性
public class Section
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Int16 ID { get; set; }
public Int64? LogoFileID { get; set; }
[Required, MaxLength(100)]
public string RouteName { get; set; }
[Required, MaxLength(15)]
public string Type { get; set; }
[Required]
public string Title { get; set; }
[Column(TypeName = "varchar(MAX)")]
public string Synopsis { get; set; }
[ForeignKey("LogoFileID")]
public virtual File Logo { get; set; }
}
这是视图中的调用:
@Html.DropDownListFor(m => m.SelectedSection, Model.Sections)
以及ViewModel中的属性:
[DisplayName("Original Release Name")]
public IEnumerable<SelectListItem> Sections { get; set; }
public Int16 SelectedSection { get; set; }
我不太确定我做错了什么,因为Section
确实包含ID
。我哪里错了?
db.Sections.Select(s => s.ID > 0)
这意味着选择s.ID>0的RESULT,因此您将得到一个IEnumerable<bool>
。也许您的意思是db.Sections.Where(s => s.ID > 0)
——这将返回ID>0的Sections列表。