Asp.net mvc asp.net mvc和linq到实体:如何包含IEnumerable中的文本值<;选择列表项>;

Asp.net mvc asp.net mvc和linq到实体:如何包含IEnumerable中的文本值<;选择列表项>;,asp.net-mvc,linq-to-entities,Asp.net Mvc,Linq To Entities,我有一个在一个字段上有约束的表-它可以是1、2或3。(正确的解决方案可能是为此创建一个查找表,但目前我想知道是否可以在没有查找表的情况下执行此操作。) 我创建了一个类,该类为值返回IEnumerable。我正在使用LINQ to实体,并且希望在列出所有实体时能够在列中显示文本值 创建/编辑的代码如下所示: Controller.cs: ViewData["Message_Types"] = MessageTypes.MessageTypeList; edit.aspx: <%

我有一个在一个字段上有约束的表-它可以是1、2或3。(正确的解决方案可能是为此创建一个查找表,但目前我想知道是否可以在没有查找表的情况下执行此操作。)

我创建了一个类,该类为值返回IEnumerable。我正在使用LINQ to实体,并且希望在列出所有实体时能够在列中显示文本值

创建/编辑的代码如下所示:

Controller.cs:

    ViewData["Message_Types"] = MessageTypes.MessageTypeList;
edit.aspx:

  <%= Html.DropDownList("Message_Type",(IEnumerable<SelectListItem>)ViewData["Message_Types"]) %>
但是,我希望如何显示文本值而不是数字值:

index.aspx:

  <td>
    <%= Html.Encode(item.Message_Type) %>
  </td>

如何获取与item.Message_类型对应的元素的文本值

更新:

消息类型如下所示:

public static IEnumerable<SelectListItem> MessageTypeList
{
  get
  {
    return new[] {
      new SelectListItem{ Text = "Text Value 1", Value="1" },
      new SelectListItem{ Text = "Text Value 2", Value="2" },
      new SelectListItem{ Text = "Text Value 3", Value="3" }
    };
  }

}
公共静态IEnumerable MessageTypeList
{
得到
{
返回新的[]{
新建SelectListItem{Text=“Text Value 1”,Value=“1”},
新建SelectListItem{Text=“Text Value 2”,Value=“2”},
新建SelectListItem{Text=“Text Value 3”,Value=“3”}
};
}
}

Enum.GetName(typeof(MessageTypes),item.Message\u Type)

Enum.GetName(typeof(MessageTypes),item.Message\u Type)

这似乎有效-不确定这是不是最好的解决方案

而不是:

  <td>
    <%= Html.Encode(item.Message_Type) %>
  </td>

我从以下位置获取文本值:

  <td>
    <%= Html.Encode(MessageTypes.MessageTypeList.Single(foo => foo.Value == item.Message_Type.ToString()).Text)%>
  </td>

foo.Value==item.Message_Type.ToString()).Text)%>

这似乎有效-但不确定这是否是最佳解决方案

而不是:

  <td>
    <%= Html.Encode(item.Message_Type) %>
  </td>

我从以下位置获取文本值:

  <td>
    <%= Html.Encode(MessageTypes.MessageTypeList.Single(foo => foo.Value == item.Message_Type.ToString()).Text)%>
  </td>

foo.Value==item.Message_Type.ToString()).Text)%>

抱歉,标题有点误导-我更新了它,表明我实际上是在试图从IEnumerable而不是枚举中获取值。抱歉,标题有点误导-我更新了它,表明我实际上是在试图从IEnumerable而不是枚举中获取值。什么文本元素?给我们这个文本元素的例子。什么文本元素?请给出这个文本元素的示例。