如何在视图中从控制器打印 LINQ 查询的结果
本文关键字:LINQ 打印 查询 结果 控制器 视图 | 更新日期: 2023-09-27 18:37:19
我在控制器中有以下代码
public ActionResult Linq()
{
List<region> Regiones = db.region.ToList();
List<comuna> Comunas = db.comuna.ToList();
var resultado = from r in Regiones
join c in Comunas on r.r_id equals c.c_region
where r.r_id == 8
select new
{
region = r.r_region,
comuna = c.c_comuna
};
ViewBag.resultado = resultado;
return View();
}
而这在视图中
@{
foreach(var a in ViewBag.resultado)
{
<tr><td>
@a.comuna
</td></tr>
}
}
但是当这个运行时,我有以下错误:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'object' no contiene una definición para 'comuna'.
发生了什么?我如何在视图中打印所有"comuna"?
谢谢!
可能的解决方案之一是为结果创建一个新类型,例如
public class Address //some good name
{
public int Region {get;set;};
public string Comuna {get;set;} ;
}
他们修改您的操作
public ActionResult Linq()
{
List<region> Regiones = db.region.ToList();
List<comuna> Comunas = db.comuna.ToList();
var resultado = from r in Regiones
join c in Comunas on r.r_id equals c.c_region
where r.r_id == 8
select new Address
{
Region = r.r_region,
Comuna = c.c_comuna
};
return View(resultado);
}
并更改视图:
@model System.Collections.Generic.IEnumerable<Address>
@{
foreach(var a in Model)
{
<tr><td>
@a.Comuna
</td></tr>
}
}