无法隐式转换类型system.collections.generic.list

时间:2017-04-19 23:03:02

标签: c# asp.net-mvc entity-framework

如果我问一些明显的话,我会道歉。我正在从常规的asp.net编程切换到MVC,从vb切换到c#。一切都很好,但我还有很多东西需要学习。

我收到以下错误

  

无法隐式转换类型system.collections.generic.list< project.models.state>到system.collections.generic.list< project.state>。存在隐式转换(您是否错过了演员?)

这就是我在控制器中的内容

 public ActionResult CityForm()
    {

        var states= _context.Departamentos.ToList();
        var viewModel = new CityFormViewModel
        {
            City= new City(),
            States= states
        };
        return View();
    }

我的viewModel如下所示

  public IEnumerable<State> States{ get; set; }

  public City City{ get; set; }

我已经查看了其他有类似错误的帖子,但看起来原因与我所拥有的不同。我以前在不同的应用程序中使用过这种方法并且工作正常,我在这一方面所做的不同之处在于我添加了一个ADO.NET实体数据模型,用于Telerik控件。

我还注意到,在我的其他应用程序中,当我将变量悬停在我的控制器中时,我收到以下消息(**之间是我将鼠标悬停在上面):

States = **states**
(local variable)List<State> states

但如果我将鼠标悬停在我收到错误的应用程序中的相同位置,我会收到不同的消息

States = **states**
(local variable)List<Models.State> states

正如您所看到的那样,在State上加上模型前缀。

我非常感谢我能得到的任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

您从不同的位置拥有相同的班级名称。如果你想分配价值,请注意他们需要属于同一类型。

在您的情况下,您必须选择IEnumerable<project.state>IEnumerable<project.models.state>,不要将project.state分配给project.models.state