C# 无法隐式转换类型';列表<;System.Web.Mvc.SelectListItem>;至';IEnumerable<;Microsoft.AspNetCore.Mvc.Rendering.SelectListItem>';

C# 无法隐式转换类型';列表<;System.Web.Mvc.SelectListItem>;至';IEnumerable<;Microsoft.AspNetCore.Mvc.Rendering.SelectListItem>';,c#,model-view-controller,enums,asp.net-core-mvc,selectlistitem,C#,Model View Controller,Enums,Asp.net Core Mvc,Selectlistitem,在我的cshtml视图中,我有一个预先制作的(scaffold)代码,我对它做了一些修改,以便能够将枚举列表放在下面,而不是文本框: <div class="form-group"> <label asp-for="Color" class="control-label"></label> <select asp-for="Color" asp-items="Model.Colors" c

在我的cshtml视图中,我有一个预先制作的(scaffold)代码,我对它做了一些修改,以便能够将枚举列表放在下面,而不是文本框:

 <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>

我试图按照本教程进行操作:

您很可能在文件顶部的模型中使用System.Web.Mvc名称空间。当
SelectListItem
存在时,视图中所需的项目来自
Microsoft.AspNetCore.Mvc.Rendering
命名空间

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

选择1
  • 摆脱使用System.Web.Mvc的
  • 使用Microsoft.AspNetCore.Mvc.Rendering添加
  • 选择2
  • 将模型中相关出现的
    SelectListItem
    更改为
    Microsoft.AspNetCore.Mvc.Rendering.SelectListItem

  • 请提供一个可复制的示例,此代码不清楚,因此很难准确地看出问题所在。使用file@KieranDevlin我一直在学习本教程,但是展示所有代码有点太多了,因为它们与此无关。但是,当教程中的家伙试图使用
    asp items=Model.etc
    @Selvin使用
    我应该拥有什么
    时,它基本上就出错了?
    
    public EnumsDTO.Color Color { get; set; }
    public List<SelectListItem> Colors { get; set; }
    public void AddColorViewModel()
    {
        Colors = new List<SelectListItem>();
        foreach (Color c in (Color[])Enum.GetValues(typeof(Color)))
        {
            Colors.Add(new SelectListItem
            {
                Value = ((int)c).ToString(),
                Text = c.ToString()
            });
        }
    }