我正在做一个MVC应用程序。对于本例。。
在我对DropDownListFor
的定义中,我定义了这样的东西。
@Html.DropDownListFor(model => model.SelectedSystem, Model.Systems, new { @class = "form-control listbox",id="Origin" })
我的模型加载在控制器中,在某些情况下它会在控制器中加载Model.System
。型号。系统类型为List<SelectListItem>
所选选项位于model.SelectedSystem
中,即string type
。这很好。。。
我面临的问题是当Model.System
为空时。
我的控制器看起来像这个
public ActionResult Index()
{
var apiEntitySyncViewModel = new ApiEntitySyncViewModel
{
Systems = _entitySyncService.GetEnvironments(),
};
return View(apiEntitySyncViewModel);
}
运行时出现消息The ViewData item that has the key SelectedSystemOrigin is of type System.String but must be of type IEnumerable<SelectListItem>
我如何才能在没有错误的情况下绘制一个空的DropDownListFor
尝试这个
public ActionResult Index()
{
var apiEntitySyncViewModel = new ApiEntitySyncViewModel
{
Systems = _entitySyncService.GetEnvironments(),
};
if(apiEntitySyncViewModel.Systems==null) apiEntitySyncViewModel.Systems = new List <SelectListItem>();
//or you can try
new List <SelectListItem>{ new SelectListItem{ Value="0", Text ="Empty" }
return View(apiEntitySyncViewModel);
}