Aqui esta el problema. Obtengo IEnumerable de ViewPage y cuando lo intenté para convertir la lista, me muestra un error como:
'
System.Collections.Generic.IEnumerable<Pax_Detail>
' no contiene una definición para 'ToList' y no seSystem.Collections.Generic.IEnumerable<Pax_Detail>
pudo encontrar ningún método de extensión 'ToList' que acepte un primer argumento de tipo ' ' (¿le falta una directiva using o una referencia de ensamblado?)
Aquí está mi código de controlador:
[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();
}
He aplicado la misma lógica en otro controlador. Y está funcionando bien. No sé qué problema tiene. Ya limpié, reconstruí el proyecto y también reinicié mi computadora portátil (aunque era necesario).
c#
asp.net-mvc-3
Dhwani
fuente
fuente
System.Core.dll
?= new List<Pax_Detail>()
al sobrescribirlo en la siguiente línea conpax.ToList()
, porque la memoria no utilizada se asigna de esta maneraRespuestas:
¿Falta una directiva de uso para
System.Linq
?http://msdn.microsoft.com/en-us/library/bb342261.aspx
fuente
Falta una referencia a System.Linq.
Añadir
using System.Linq
para obtener acceso a la función ToList () en el archivo de código actual.
Dar un poco de información sobre por qué esto es necesario,
Enumerable.ToList<TSource>
es un método de extensión. Los métodos de extensión se definen fuera de la clase original a la que apunta. En este caso, el método de extensión se define en elSystem.Linq
espacio de nombres.fuente
Una alternativa a agregar LINQ sería usar este código en su lugar:
List<Pax_Detail> paxList = new List<Pax_Detail>(pax);
fuente
Me faltaba la referencia de dll System.Data.Entity y el problema se resolvió
fuente
En mi caso, había copiado un código de otro proyecto que usaba Automapper; me llevó años resolverlo. Solo tuve que agregar el paquete automapper nuget al proyecto.
fuente