【问题标题】:ASP.NET MVC 2 - How do I use DropDownListFor?ASP.NET MVC 2 - 如何使用 DropDownListFor?
【发布时间】:2010-06-09 21:18:58
【问题描述】:

我有一个简单的模型/视图,其中包含用户名、密码等内容,并使用助手很好地连接它。

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

我的想法是模型会有一个列表或一个返回列表的方法,所以我可以指定诸如 NumberOfChildren_List 之类的值,我将数据放入其中,然后 DropDownListFor 拉出该列表并呈现它,匹配value 为下拉菜单中项目的值。

但是在花了大约 30 分钟试图弄清楚它到底是如何工作的之后,我放弃了,决定在这里问。有什么想法吗?

编辑:这里有一些代码...

<%: Html.DropDownListFor(m => m.NumberOfChildren, new SelectList(Model.NumberOfChildrenListValues))%>

在模型中

        [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
            {

            }

        }

我得到一个对象未​​设置为对象错误的实例。想法?

【问题讨论】:

标签: asp.net-mvc-2


【解决方案1】:

尝试这样(您需要为每个选项设置文本值 - 文本将用于在下拉列表中呈现,该值将用于绑定到所选项目到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" },
        };
    }
}

然后:

<%: Html.DropDownListFor(
    m => m.NumberOfChildren, 
    Model.NumberOfChildrenListValues
) %>

【讨论】:

    猜你喜欢
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多