我如何才能使这项工作
@using (Html.BeginForm())
{
@Html.ValidationSummary()
<p>MYep @Html.DropDownListFor(x => x.Id, new int {
new SelectListItem() {Text = "asdad", Value = "1"},
new SelectListItem() {Text = "dfgdgd", Value = "2"},
new SelectListItem() {Text = "werwrwt", Value = "3"}, "Choose")
<input type="submit" value="Ok" />
}
或者我应该在之前创建一个IEnumerable列表并将其提供给dropdownlistfor?
答案 0 :(得分:2)
Matt的答案很好,但看起来你正在使用ViewModel,所以你应该把这个静态列表放到视图模型中并引用视图中的列表。
<强>视图模型强>:
public sealed class MyViewModel
{
public int Id { get; set; }
public List<SelectListItem> IdList
{
get
{
return new List<SelectListItem>
{
new SelectListItem { Text = "asdad", Value = "1" },
new SelectListItem { Text = "dfgdgd", Value = "2" },
new SelectListItem { Text = "werwrwt", Value = "3" }
};
}
}
}
查看强>:
@Html.DropDownListFor(x => x.Id, Model.IdList)
答案 1 :(得分:1)
您正在声明类型为int
的对象,并使用SelectListItem
列表填充它,这将无效。
我认为你想要这样的东西......如果x.Id是一个int并且所有下拉值都是字符串,你可能需要做一些修改,但我不确定。
@Html.DropDownListFor(x => x.Id, new List<SelectListItem> {
new SelectListItem() {Text = "asdad", Value = "1"},
new SelectListItem() {Text = "dfgdgd", Value = "2"},
new SelectListItem() {Text = "werwrwt", Value = "3"}}, "Choose")