ASP.NET MVC 2 - 如何使用DropDownListFor?

Nib*_*Pig 5 asp.net-mvc-2

我有一个简单的模型/视图,包括用户名,密码等等,并使用帮助程序很好地连接它.

我现在有一个名为"NumberOfChildren"的字段.我想在其中存储一个数字(int),我希望它呈现一个包含"None","1","2"等的下拉框.

我的想法是模型将有一个列表或返回列表的方法,所以我可以指定我将数据放入的NumberOfChildren_List等值,然后DropDownListFor拉出该列表并呈现它,将值与下拉列表中项目的值.

然而,在花了大约30分钟试图弄清楚它是如何起作用后,我放弃了,并决定在这里问.有任何想法吗?

编辑:这是一些代码......

<%: Html.DropDownListFor(m => m.NumberOfChildren, new SelectList(Model.NumberOfChildrenListValues))%>
Run Code Online (Sandbox Code Playgroud)

在模型中

        [Required]
        [DisplayName("How many children do you have?")]
        public string NumberOfChildren { get; set; }

        public IEnumerable<string> NumberOfChildrenListValues
        {
            get
            {
                List<string> list = new List<string>() { "None", "1", "2" };

                return list;
            }

            set
            {

            }

        }
Run Code Online (Sandbox Code Playgroud)

我得到的对象没有设置为对象错误的实例.想法?

Dar*_*rov 2

尝试这样(您需要设置每个选项的文本值 - 文本将用于在下拉列表中呈现,值将用于将所选项目绑定到属性NumberOfChildren):

[Required]
[DisplayName("How many children do you have?")]
public string NumberOfChildren { get; set; }

public IEnumerable<SelectListItem> NumberOfChildrenListValues
{
    get
    {
        return new[]
        {
            new SelectListItem { Value = "0", Text = "None" },
            new SelectListItem { Value = "1", Text = "1" },
            new SelectListItem { Value = "2", Text = "2" },
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

进而:

<%: Html.DropDownListFor(
    m => m.NumberOfChildren, 
    Model.NumberOfChildrenListValues
) %>
Run Code Online (Sandbox Code Playgroud)