Reputation: 7626
Here is the problem. I am getting IEnumerable from ViewPage and when I tried it to convert List it is showing me error like:
'
System.Collections.Generic.IEnumerable<Pax_Detail>
' does not contain a definition for 'ToList' and no extension method 'ToList' accepting a first argument of type 'System.Collections.Generic.IEnumerable<Pax_Detail>
' could be found (are you missing a using directive or an assembly reference?)
Here is my controller code:
[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();
}
I have applied same logic on another controller. And it is working fine. I don't know what problem it has. I have already clean, rebuild project and also restarted my laptop(though it was needed).
Upvotes: 115
Views: 177126
Reputation: 70223
Are you missing a using directive for System.Linq
?
https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.tolist
Upvotes: 283
Reputation: 1339
In my case, I had copied some code from another project that was using Automapper - took me ages to work that one out. Just had to add automapper nuget package to project.
Upvotes: 0
Reputation: 3147
I was missing System.Data.Entity dll reference and problem was solved
Upvotes: 4
Reputation: 174457
An alternative to adding LINQ would be to use this code instead:
List<Pax_Detail> paxList = new List<Pax_Detail>(pax);
Upvotes: 10
Reputation: 8921
You're missing a reference to System.Linq.
Add
using System.Linq
to get access to the ToList() function on the current code file.
To give a little bit of information over why this is necessary, Enumerable.ToList<TSource>
is an extension method. Extension methods are defined outside the original class that it targets. In this case, the extension method is defined on System.Linq
namespace.
Upvotes: 39