如何在mvc3应用程序中创建下拉列表?

时间:2012-04-10 14:47:26

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

我创建了一个mvc3应用程序。

有一种形式,我从用户那里获取价值。

有一个名为Gender

的字段

我想给出一个包含值MaleFemale

的下拉列表

但我不明白我在哪里以及如何指定值请帮助。

我需要一个Ajax Helper方法来处理这个或任何异步脚本

2 个答案:

答案 0 :(得分:2)

最简单的方法是在Html中执行此操作:

 <select id="selection" name="selection">
     <option value="1">Male</option>
     <option value="2">Female</option>
 </select>

您也可以使用剃须刀执行此操作:

 @Html.DropDownLiwt("GenderSelection", "Male")

在控制器内完成此操作后:

 Dim genderSelection As List(Of String) = New List(Of String)
 genderSelection.Add("Male")
 genderSelection.Add("Female")

 ViewData("GenderSelection") = New SelectList(genderSelection)

答案 1 :(得分:0)

首先为您的下拉列表创建实体类。它将返回值列表

public class KeyValueEntity
    {
        public string Description { get; set; }
        public string Value { get; set; }
    }

public class MyViewModel
    {
        public List<KeyValueEntity> Status { get; set; }
}

在您的控制器上编写以下代码

[HttpGet]
        public ActionResult Dropdown()
        {  
                MyViewModel model = GetDefaultModel();  
                return View(model);
            }
        }


public MyViewModel GetDefaultModel()
        {
            var entity = new MyViewModel();            
            entity.Status = GetMyDropdownValues();            
            return entity;
        }


private List<KeyValueEntity> GetMyDropdownValues()
        {
            return new List<KeyValueEntity>
            {
                new KeyValueEntity { Description = "Yes" , Value ="1" },
                new KeyValueEntity { Description = "No" , Value ="0"}
            };
        }

cshtml页面的代码:现在,您需要将视图与模型绑定,以便在视图的顶部定义模型类

@model MyViewModel
Following is the code for dropdown binding

 @Html.LabelForModel("Status:")
            @Html.DropDownListFor(m => m.Status, new SelectList(Model.Status, "Value", "Description"), "-- Please Select --")