【问题标题】:How to display enums in ASP.NET MVC如何在 ASP.NET MVC 中显示枚举
【发布时间】:2015-08-31 14:44:53
【问题描述】:

我是 MVC 和 Entity 框架的新手,所以在我的第一个项目中遇到了一些问题。很抱歉,如果我的问题是菜鸟:(

我现在所拥有的:
我有表用户(ID、姓名、密码、TypeID、StatusID),​​并且我有此字段 TypeID、StatusID UserTypes 和 UserStatuses 的查找表。

为了更清楚,这里有一些代码

CREATE TABLE [dbo].[Users](
    [ID] [int] NOT NULL,
    [Name] [varchar](512) NOT NULL,
    [Password] [varchar](128) NOT NULL,
    [TypeID] [int] NULL,
    [StatusID] [int] NULL
)

CREATE TABLE [dbo].[UserStatuses](
    [ID] [int] NOT NULL,
    [Description] [nvarchar](128) NULL
)


CREATE TABLE [dbo].[UserTypes](
    [ID] [int] NOT NULL,
    [Description] [nvarchar](128) NULL
)

在 UserStatuses 表中,我存储“活动”、“已阻止” 在 UserTypes “Admin”、“User”、“guest”中

UserTypes 中的值将来会发生变化,所以我不会转换 Enum 中的 Users.TypeID 字段。(这对我很重要!)

我需要什么:
当我生成视图时,如何显示用户友好值“活动”、“已阻止”状态 ID 和“管理员”、“用户”、“访客”字段,而不是数字编辑器?

欢迎链接到一些好文章微笑:)

【问题讨论】:

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


    【解决方案1】:

    http://asp.net/ 上有几十篇文章可以指导您使用这些框架。

    特别是,您可能想阅读Introduction to ASP.NET Web Programming Using the Razor Syntax (C#),它可以帮助您更好地了解如何在视图中显示数据。

    【讨论】:

      【解决方案2】:

      EntityFramework 允许您在 POCO 实体类中将它称为“导航属性”的内容声明为“导航属性”。更多信息请阅读here

      因此,在您的情况下,您可以做的是在您的Users POCO 实体类中声明一个导航属性,代表UserStatusesUserTypes,如下所示:

          public class User
          {
              public int id { get; set; }
      
              // Other properties representing table columns here
      
              public UserStatus UserStatus { get; set; }
              public UserType UserType { get; set; }
          }
      
         public class UserStatus
         {
              public int Id { get; set; }
              public string Description  { get; set; }
         }
      

      现在您可以引用一个用户对应的 UserStatus 对象。即在 UI 中,您可以使用 user.UserStatus.Description 来显示值。

      【讨论】:

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