Acabo de empezar a trabajar con ASP.NET MVC ahora que está en versión beta. En mi código, estoy ejecutando una consulta LINQ a SQL simple para obtener una lista de resultados y pasar eso a mi vista. Este tipo de cosas:¿Puedo pasar un tipo anónimo a mi vista ASP.NET MVC?
var ords = from o in db.Orders
where o.OrderDate == DateTime.Today
select o;
return View(ords);
Sin embargo, en mi opinión, me di cuenta que había necesidad de tener acceso a nombre del cliente para cada orden. Empecé a usar o.Customer.Name
pero estoy bastante seguro de que esto está ejecutando una consulta separada para cada orden (debido a la carga diferida de LINQ).
La forma lógica de reducir el número de consultas sería seleccionar el nombre del cliente al mismo tiempo. Algo como:
var ords = from o in db.Orders
from c in db.Customers
where o.OrderDate == DateTime.Today
and o.CustomerID == c.CustomerID
select new { o.OrderID, /* ... */, c.CustomerName };
return View(ords);
Excepto que ahora mi variable "ords" es un IEnumerable de tipo anónimo.
¿Es posible declarar una vista MVC de ASP.NET de forma que acepte un IEnumerable como su datos de vista donde T se define por lo que pasa desde el controlador, o tendré que definir un tipo concreto para poblar de mi consulta?
Si alguien sabe que serías tú, Phil. ¡Gracias por ser tan accesible a la plebe como yo! –
¿Respondió esto a la pregunta? Tengo este problema exacto y esta respuesta no ayuda. ¿Podrías mostrarnos cómo podemos recorrer los ords y mostrarlos en una vista? –
¡No responde la pregunta! Sorprendentemente, funciona para el cuadro de texto, pero si solo quería mostrar este valor, ¿cómo lo hago? <% = Model.Something%> no funciona, obtendrá 'object' no contiene una definición para la excepción 'Something'. – PawelRoman