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);
    }
}

私ができるようにしたいのは、選択するとモデルの ParentID を設定するドロップダウンをビューに表示することです。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 に答える