加载 HTML 时出现 MVC 错误。具有键“MY KEY”的 ViewData 项属于“System.String”类型,但必须属于“IEnumerable<SelectListItem>
Posted
技术标签:
【中文标题】加载 HTML 时出现 MVC 错误。具有键“MY KEY”的 ViewData 项属于“System.String”类型,但必须属于“IEnumerable<SelectListItem>”类型【英文标题】:The MVC error on load HTML. ViewData item that has the key 'MY KEY' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>' 【发布时间】:2022-01-24 01:21:45 【问题描述】:我正在做一个 MVC APP。对于这个例子..
在我对DropDownListFor
的定义中,我定义了类似的东西。
@html.DropDownListFor(model => model.SelectedSystem, Model.Systems, new @class = "form-control listbox",id="Origin" )
我的模型加载到控制器中,在某些情况下它会加载Model.System
。 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 而不会出现这个错误
【问题讨论】:
【参考方案1】:试试这个
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);
【讨论】:
以上是关于加载 HTML 时出现 MVC 错误。具有键“MY KEY”的 ViewData 项属于“System.String”类型,但必须属于“IEnumerable<SelectListItem>的主要内容,如果未能解决你的问题,请参考以下文章
配置复制从属时加载 mysql 5.6 主转储时出现错误 1794