显示DropDownList

时间:2014-04-21 09:19:47

标签: c# asp.net html5 asp.net-mvc-3 enums

我正在尝试使用enum构建下拉列表。 我尝试了以下内容,但不知道如何在视图中显示它。我正在使用MVC framework

 public enum Condition
        {
            And,
            Or,
            Not,
        }

 private List<Condition> userTypes = Enum.GetValues(typeof(Condition)).Cast<Condition>().ToList();

       public List<Condition> UserType
       {
           get
           {
               return userTypes;
           }
           set
           {
               userTypes = value;
           }
       }

上面的代码是否正确显示一个简单的下拉列表? 我如何传递视图以显示下拉列表。 感谢

3 个答案:

答案 0 :(得分:2)

Action

ViewData["ddl"] = userTypes.Select(t => new SelectListItem { Text = t.ToString(), Value = ((int)t).ToString() });

aspx

<%=Html.DropDownList("ddl", ViewData["ddl"] as IEnumerable<SelectListItem>)%>
  

其余的都没问题。

答案 1 :(得分:1)

您希望从属性string而不是UserType类型返回Condition列表。其次,属性必须是readonly,因为枚举是不变的,用户不会改变它。最后不要使用变量,属性本身处理这个。

public List<string> UserType
{
   get
   {
      return Enum.GetNames(typeof(Condition)).ToList();
   }
}

答案 2 :(得分:1)

  1. 在您的模型中添加如下列表:

     private List conditionList= Enum.GetValues(typeof(Condition))
                        .Cast()
                        .Select(e => new SelectListItem { Value = ((int)e).ToString(), Text      = e.ToString() }); 
    
  2. 然后在视图中添加此内容

    @Html.EditorFor(m=>m.Condition,Model.conditionList)    
    
  3. 我相信这会让事情变得更容易。