如何使用包含其他模型列表的模型进行下拉列表?

时间:2012-11-22 19:01:22

标签: c# asp.net-mvc entity-framework

我需要在视图中创建一个DropDownList,它使用一个名为Projects的特定模型。

public class ProjectModel
{
    public string ProjectName { get; set; }
    public List<Company> Companies { get; set; }
}

我有一个Company存储库,我需要在使用ProjectModel@model的视图中列出这些公司。

1 个答案:

答案 0 :(得分:2)

首先,您需要在项目模型中使用CompanyID(我假设它是一个int)。 其次,您需要一个可以用于下拉列表的List<SelectListItem>,因此您的模型看起来像这样:

public ProjectModel
{
    public string ProjectName { get; set; }
    public int CompanyID { get; set; }
    public List<Company> Companies { get; set; }
    public List<SelectListItem> CompaniesSelectList
    {
        get
        {
            return Companies
                .Select(c => new SelectListItem
                    {
                        Text = c.CompanyName,
                        Value = c.CompanyID.ToString(),
                        Selected = c.CompanyID == CompanyID
                    })
                .ToList();
        }
    }
}

然后在您看来,您可以这样做:

@Html.DropdownListFor(m => m.CompanyID, Model.CompaniesSelectList, "Please Select")