无法将类型'List <System.Web.Mvc.SelectListItem>隐式转换为'IEnumerable <Microsoft.AspNetCore.Mvc.Rendering.SelectListItem>'

时间:2019-11-12 10:59:14

标签: c# model-view-controller enums asp.net-core-mvc selectlistitem

在我的cshtml视图中,我具有以下预制的(脚手架)代码,我对其进行了一些更改,以便能够在此处放置枚举列表而不是文本框:

no transaction == no id

<div class="form-group"> <label asp-for="Color" class="control-label"></label> <select asp-for="Color" asp-items="Model.Colors" class="form-control"></select> <span asp-validation-for="Color" class="text-danger"></span> </div> 处发生错误。

在我的模型中,我尝试进行了以下操作:Model.Colors,如Cannot implicitly convert type 'System.Web.Mvc.SelectList' to 'System.Collections.Generic.ICollection<System.Web.Mvc.SelectList>'所述,但是我得到了一个不同的错误; 无法将“ System.Collections.Generic.List”隐式转换为“ System.Web.Mvc.SelectListItem”

即使Colors.Add(new List<SelectListItem>());Colors

但是在此之前,我已经在ViewModel中有了它:

List<SelectListItem>

我正在尝试遵循本教程:https://www.youtube.com/watch?v=MPJ9PPCWxoI

1 个答案:

答案 0 :(得分:0)

您很有可能在模型顶部的using System.Web.Mvc名称空间中。尽管SelectListItem存在,但视图中应该有一个Microsoft.AspNetCore.Mvc.Rendering名称空间。

因此,有两种方法可以解决此问题:

选项1

  1. 摆脱using System.Web.Mvc;
  2. 添加using Microsoft.AspNetCore.Mvc.Rendering;

选项2

  1. 将模型中SelectListItem的相关出现更改为Microsoft.AspNetCore.Mvc.Rendering.SelectListItem