Tu jest problem. Otrzymuję IEnumerable z ViewPage i kiedy próbowałem przekonwertować Listę, pokazuje mi błąd taki jak:
„
System.Collections.Generic.IEnumerable<Pax_Detail>
” nie zawiera definicji „ToList” i nie można znaleźć metody rozszerzającej „ToList” akceptującej pierwszy argument typu „System.Collections.Generic.IEnumerable<Pax_Detail>
” (brakuje dyrektywy using lub odwołania do zestawu?)
Oto mój kod kontrolera:
[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();
}
Zastosowałem tę samą logikę na innym kontrolerze. I działa dobrze. Nie wiem, jaki ma problem. Wyczyściłem, przebudowałem projekt i zrestartowałem laptopa (choć było to potrzebne).
c#
asp.net-mvc-3
Dhwani
źródło
źródło
System.Core.dll
?= new List<Pax_Detail>()
nadpisywania go w następnej liniipax.ToList()
, ponieważ w ten sposób alokowana jest nieużywana pamięćOdpowiedzi:
Brakuje Ci dyrektywy using dla
System.Linq
?http://msdn.microsoft.com/en-us/library/bb342261.aspx
źródło
Brakuje odniesienia do System.Linq.
Dodaj
using System.Linq
aby uzyskać dostęp do funkcji ToList () w bieżącym pliku kodu.
Podanie trochę informacji o tym, dlaczego jest to konieczne,
Enumerable.ToList<TSource>
jest metodą rozszerzającą. Metody rozszerzające są zdefiniowane poza oryginalną klasą, do której są przeznaczone. W tym przypadku metoda rozszerzenia jest zdefiniowana wSystem.Linq
przestrzeni nazw.źródło
Alternatywą dla dodania LINQ byłoby użycie tego kodu:
List<Pax_Detail> paxList = new List<Pax_Detail>(pax);
źródło
Brakowało mi odniesienia dll System.Data.Entity i problem został rozwiązany
źródło
W moim przypadku skopiowałem kod z innego projektu, który korzystał z Automappera - przepracowanie tego zajęło mi wieki. Wystarczyło dodać pakiet automapper nuget do projektu.
źródło