如何解决此错误 无法隐式转换类型

本文关键字:类型 转换 错误 何解决 解决 | 更新日期: 2023-09-27 18:32:00

我在第 model.dropdownuserlist 行的控制器中收到错误:

System.Collections.Generic.List<System.Web.Mvc.SelectListItem> to System.Collections.Generic.List<System.Web.WebPages.Html.SelectListItem>

我的模型如下所示

 public List<SelectListItem> dropdownuserlist { get; set; }
 [Display(Name = "Select User")]
 public string uid { get; set; }    

并且控制器dropdown.cs.

 public ActionResult Dropdown()
 {
     DropdownModel model = new DropdownModel();
     model.dropdownuserlist = dropdownuserlist()
         .Select(p => 
             new SelectListItem 
             { 
                 Text = p.Name, 
                 Value = p.Id.ToString() 
             })
         .ToList<SelectListItem>();
     return View();
 }

我不知道如何正确铸造这个。有什么建议吗?

如何解决此错误 无法隐式转换类型

尝试

model.dropdownuserlist = dropdownuserlist().Select(p => new System.Web.WebPages.Html.SelectListItem { Text = p.Name, Value = p.Id.ToString() }).ToList();

您使用了错误的命名空间。

看起来您遇到了由引用的命名空间引起的类歧义问题。有 3 种方法可以解决这个问题。

  1. 检查您的 using 语句并删除冲突的命名空间,如果可能。
  2. 尝试在代码中使用完全限定的名称,即System.Web.Mvc.SelectListItem.
  3. 如果两个命名空间都必须有 using 语句,则可以使用几个 using 语句来创建别名和在代码中引用别名。

有关使用别名的示例,请参阅使用指令(C# 参考)。

using HtmlSelectListItem = System.Web.WebPages.Html.SelectListItem ;
using MVCSelectListItem = System.Web.Mvc.SelectListItem;