1

在我的 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);
    }
}

What I want to be able to do is have a drop down in my view that when selected sets the ParentID of my model. 我不确定如何使用DropDownListFor它会直接与我的模型相关联。

有人可以指出我正确的方向吗?

4

1 回答 1

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"))
于 2013-09-29T11:58:47.470 回答