这是问题所在。我从ViewPage获得IEnumerable,当我尝试转换List时,它显示错误如:
'
System.Collections.Generic.IEnumerable<Pax_Detail>
'不包含 'ToList'的定义,没有扩展方法'ToList'接受a 类型的第一个参数 可以找到'System.Collections.Generic.IEnumerable<Pax_Detail>
' (您是否缺少using指令或程序集引用?)
这是我的控制器代码:
[HttpPost]
public ActionResult Edit_Booking(Booking model, IEnumerable<Pax_Detail> pax)
{
List<Pax_Detail> paxList = new List<Pax_Detail>();
paxList = pax.ToList(); //getting error here
BookingDL.Update_Booking(model, paxList);
return View();
}
我在另一个控制器上应用了相同的逻辑。它工作正常。我不知道它有什么问题。我已经清理,重建项目并重新启动我的笔记本电脑(尽管需要)。
答案 0 :(得分:187)
您是否遗漏了System.Linq
的使用指令?
答案 1 :(得分:21)
您错过了对System.Linq的引用。
添加
using System.Linq
访问当前代码文件的ToList()函数。
为了提供一些有关为何必要的信息,Enumerable.ToList<TSource>
是一种扩展方法。扩展方法在其所针对的原始类之外定义。在这种情况下,扩展方法在System.Linq
名称空间上定义。
答案 2 :(得分:7)
添加LINQ的另一种方法是使用此代码:
List<Pax_Detail> paxList = new List<Pax_Detail>(pax);
答案 3 :(得分:3)
我缺少System.Data.Entity dll引用并且问题已解决
答案 4 :(得分:0)
就我而言,我已经从另一个使用Automapper的项目中复制了一些代码-花了我很长时间才能解决这个问题。只需将automapper nuget包添加到项目中即可。