c# - 如何使用包含其他模型列表的模型创建下拉列表?

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

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

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

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

最佳答案

首先,您需要一个 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")

关于c# - 如何使用包含其他模型列表的模型创建下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13518675/

相关文章:

asp.net-mvc - 从递归模型创建表单

c# - 如何使用 LINQ 动态查询不同的表?

entity-framework - Entity Framework 加载关系

c# - 重定向后 ASP Net Core 2.2 session 丢失

c# json 仅合并值(忽略缺失的字段)

css - Chekbox MVC 未发回数据。使用 Html.Chekboxfor 使用 proto.io 不工作

c# - 使用 Entity Framework 删除大量项目

c# - 发出操作可能会破坏递增字段的运行时

c# - 在 while(true) 循环中吞下异步异常

asp.net-mvc - 获取表单字段生成的 clientid