我正在尝试初始化一个带有下拉属性的空视图模型,所以当涉及到控制器时,它不会给出关于下拉列表的错误。下面是我试图让它工作但是它跳过foreach循环的代码,因为模型在开始时是空的:
ExampleViewModel
public class ExampleViewModel
{
public ExampleViewModel()
{
ExampleViewModel = new ExampleViewModel();
}
public SelectList dropdown{ get; set; }
public string dropdownvalue { get; set; }
}
}
控制器代码:
List<ExampleViewModel > integration = new List<ExampleViewModel >();
foreach (var item in ExampleViewModel )
{
item.dropdown= ApplicationService.GetDropdownlist(null);
}
在View中,我的下拉列表被称为:
@Html.LabelFor(model => model.dropdown, new { @id = "rightlabel" })
<span>
@Html.DropDownListFor(model => model.dropdownvalue, Model.dropdown)
@Html.ValidationMessageFor(model => model.dropdown)
</span>
是否有可能的解决方法,因此下拉列表会被初始化?
答案 0 :(得分:1)
您似乎正在初始化一个不存在的变量,而不是初始化您真正关心的属性。
public class ExampleViewModel
{
public ExampleViewModel()
{
this.dropdown = new List<string>();
this.dropdownvalue = string.Empty;
}
public List<string> dropdown{ get; set; }
public string dropdownvalue { get; set; }
}
}
这将停止空引用异常。我也不会在视图模型中放置一个SelectList ...... List会好得多。
您应该使用视图模型中的列表在视图中构建SelectList ...替换List&lt;&gt;根据您的要求提供更合适的东西。