在我的PageModels中,我有:
public class Page : BaseModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int PageID { get; set; }
public int? ParentID { get; set; }
public string Name { get; set; }
public virtual Page Parent { get; set; }
public virtual ICollection<Page> Children { get; set; }
public Page()
{
this.Order = 0;
this.Live = false;
}
}
public class CommodityPageMap : EntityTypeConfiguration<Page>
{
public CommodityPageMap()
{
HasOptional(x => x.Parent)
.WithMany(x => x.Children)
.HasForeignKey(x => x.ParentID)
.WillCascadeOnDelete(false);
}
}
我希望能够做的是在我的视图中有一个下拉列表,当选择设置我的模型的ParentID时。我不确定如何使用与我的模型直接相关的DropDownListFor
。
有人能指出我正确的方向吗?
答案 0 :(得分:1)
设置ParentID
只是一个整数,因此下拉列表中的值是可以正常工作的整数。
我想你真正问的问题是如何获得这个下拉列表中可能的整数列表?
您的模型应该有一个返回该列表的属性。像这样简单:
public IDictionary<int, string> PossibleParents
{
get
{
// query the database for possible parents
// return the list of IDs and names
}
}
然后在您的视图中,您将使用该属性填充下拉列表:
@Html.DropDownListFor(x => x.ParentID, new SelectList(Model.PossibleParents, "Key", "Value"))