Parece que debería ser tan fácil, pero he intentado tres o cuatro formas de hacerlo (pero fue en vano).Pasar los resultados de la consulta en un viewbag
Estoy tratando de poner un resultado de consulta en una bolsa de visualización y mostrarla.
He intentado poner una lista de objetos en un modelo de ViewBag:
var mesg = from MSG in lemondb.Messages
where MSG.msg == Membership.GetUser().ToString()
select MSG;
ViewBag.messages = MSG;
Y entonces trato de escupir en un .cshtml:
var message = (List<LemonTrader.Models.Message>)ViewBag.messages; // <--- fails here because it is a string
foreach (var MSG in message)
{
@Html.Label(MSG.msg)<br />
}
Pero dice:
Cannot convert type 'System.Data.Entity.Infrastructure.DbQuery' to 'System.Collections.Generic.List'
Parece que estoy utilizando una plantilla incorrecta. ¿Cómo escupo un System.Entity.Infrastructure.DbQuery?
También intenté pasar los resultados a través del Viewbag como una lista de cadenas. (¿Es una peor manera de hacerlo?)
var mesg = from MSG in lemondb.Messages
where MSG.msg == Membership.GetUser().ToString()
select MSG.msg;
ViewBag.messages = mesg;
Y escupir como una lista de cadenas:
foreach (var atext in ViewBag.messages as List<string>) { // gets hung up on foreach here (why???)
@Html.Label(atext)
}
Y conseguir esto:
Object reference not set to an instance of an object.
y apunta a la palabra clave "foreach".
¿Eso significa que no hubo mensajes? ¿O que?
¡Ojalá hubiera un tutorial que mostrara cómo poner resultados de consulta en un ViewBag y cómo sacarlos! He visto tutoriales que devuelven un object.ToList() sin importar ningún tipo de mecanismo "where", pero no hay ejemplos para extraer algunas entradas relevantes y mostrarlas.
impresionante. ¡Gracias! – micahhoover
Por alguna razón, cuando usé esta línea: "ViewBag.messages = mesg.ToList();" Obtuve este error: "LINQ to Entities no reconoce el método 'System.String ToString()', y este método no se puede traducir a una expresión de tienda". – micahhoover
Veo este error cuando hago "seleccionar MSG" y "seleccionar MSG.mesg". También recibí este error cuando hice esto: "ViewBag.messages = mesg.ToString();" (en lugar de ToList()). – micahhoover