【问题标题】:DropDownListFor enums in EF5DropDownListFor EF5 中的枚举
【发布时间】:2012-09-17 13:22:54
【问题描述】:

使用 MVC4 Razor 和 Entityframework 5. 我有一个名为组织的表,其中包含一个整数 TypeID 字段,我创建了一个枚举类型。在代码中,我可以使用枚举设置和比较 typeid。

 public enum OrganisationType : int
    {
        Company = 1,
        Department = 2,
        Location = 4
    }

但是,当我使用默认的 vs2012 mvc 4 razor 模板或通过 mvcscaffolding nuget 包生成 create.cshtml 时,都会忽略 TypeID 字段。我正在考虑修改 tt 模板,以便它们自动生成。但最初是否可以在下拉列表中显示枚举的描述性名称。

【问题讨论】:

  • 您是否将模型(其中包含列表)传递给下拉列表的视图?为此进行调试。
  • 您是否尝试使用 DropdownListFor 使用枚举值和文本填充下拉列表?

标签: asp.net-mvc entity-framework razor


【解决方案1】:

这就是解决方案,遗憾的是修改 TT 模板以使其自动化并不简单。

@Html.DropDownListFor(model => model.TypeID, new SelectList(Enum.GetValues(typeof(Models.OrganisationType))))

这会显示一个下拉组合,其中包含文本值,即公司、部门、位置。

【讨论】:

    【解决方案2】:

    在当前版本的 MVC5 中,如果您为具有枚举的模型构建视图,它将生成以下内容:

    @Html.EnumDropDownListFor(model => model.OrganisationType,
                              htmlAttributes: new { @class = "form-control" })
    

    与 Tim 的解决方案完全相同,但语法稍好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多