加载 HTML 时的 MVC 错误。具有键"我的密钥"的 ViewData 项的类型为"System.String",但必须为"IEnumerable"类型。<SelectListItem>



我正在做一个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);
}

相关内容

  • 没有找到相关文章

最新更新