MVC 无法将类型“System.Collections.Generic.List<AnonymousType#1>”隐式转换为“System.Collections.Generic.IList<Mv...
时间: 2024-05-01 19:23:34 浏览: 179
这个错误通常是因为你在代码中使用了匿名类型,并且尝试将其赋值给一个泛型类型参数。因为匿名类型是编译时生成的,所以编译器无法推断出它们的类型信息。
为了解决这个问题,你可以考虑以下几种方法:
1. 显式地将匿名类型转换为一个具体的类型,然后再将其赋值给泛型类型参数。例如:
```
var anonymousList = new List { new { Name = "John", Age = 30 } };
IList<Person> personList = anonymousList.Select(x => new Person { Name = x.Name, Age = x.Age }).ToList();
```
2. 使用具体的类型而不是匿名类型来定义列表。例如:
```
List<Person> personList = new List<Person> { new Person { Name = "John", Age = 30 } };
IList<Person> genericList = personList;
```
3. 如果你使用了 Entity Framework Core 来查询数据库,你可以考虑使用 Select 方法来选择需要的属性,并返回一个具体的类型。例如:
```
var anonymousList = dbContext.People.Select(x => new { Name = x.Name, Age = x.Age }).ToList();
IList<Person> personList = anonymousList.Select(x => new Person { Name = x.Name, Age = x.Age }).ToList();
```
希望这些方法能够帮助你解决这个问题。
阅读全文