System.Collections.Generic.IEnumerable'不包含'ToList'的任何定义

时间:2013-04-04 13:37:38

标签: c# asp.net-mvc-3

这是问题所在。我从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();
}

我在另一个控制器上应用了相同的逻辑。它工作正常。我不知道它有什么问题。我已经清理,重建项目并重新启动我的笔记本电脑(尽管需要)。

5 个答案:

答案 0 :(得分:187)

您是否遗漏了System.Linq的使用指令?

http://msdn.microsoft.com/en-us/library/bb342261.aspx

答案 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包添加到项目中即可。