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

时间:2014-11-25 18:42:56

标签: c# asp.net-mvc

我在第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();
 }

我无法弄清楚如何正确施放。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

尝试

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

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

答案 1 :(得分:0)

看起来你的引用名称空间引起了类歧义问题。有3种方法可以解决这个问题。

  1. 检查您的using语句并删除冲突的命名空间if 可能的。
  2. 尝试在代码中使用完全限定名称,即 System.Web.Mvc.SelectListItem。
  3. 如果你必须为两个命名空间都使用using语句,那就是 可以使用几个using语句来创建别名和 引用代码中的别名。
  4. 有关使用别名的示例,请参阅using Directive (C# Reference)

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