我有一个简单的模型/视图,其中包含用户名,密码等内容,并使用帮助程序将其连接起来。
我现在有一个名为“NumberOfChildren”的字段。我想在其中存储一个数字(int),我希望它呈现一个包含“无”,“1”,“2”等的下拉框。
我的想法是模型会有一个列表或一个返回列表的方法,所以我可以指定我将数据放入的NumberOfChildren_List等值,然后DropDownListFor拉出该列表并呈现它,匹配值为下拉列表中项目的值。
然而,在花了大约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
{
}
}
虽然我得到的对象未设置为对象错误的实例。想法?
答案 0 :(得分: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" },
};
}
}
然后:
<%: Html.DropDownListFor(
m => m.NumberOfChildren,
Model.NumberOfChildrenListValues
) %>