很确定以前已经回答了这个问题,而我在搜索时并没有使用正确的措词......
我是MVC和C#的新手,试图将LINQ查询的结果映射到局部视图,我不知道如何声明视图模型,因此我可以遍历结果。我没有将这些结果映射到模型。我只是想从表中获取一些统计数据,为这个简单的查询创建一个类似乎没有道理......或者是它?
控制器
public ActionResult _DomainCounts()
{
DB.Log = Console.Out;
var totals = from p in DB.Redirects
group p by p.Domain into g
select new
{
Domain = g.Key,
Count = g.Count()
};
return PartialView("_DomainCounts", totals.AsEnumerable());
}
查看
@model IEnumerable
@foreach (var d in Model)
{
@d.Domain, @d.Count <br />
}
显然我的View不知道Domain和Count是什么,我不知道如何正确声明它。或者我是否需要为这些结果创建模型?
答案 0 :(得分:0)
使用new { Domain = g.Key, Count = g.Count() }
您正在创建新的anonymous type。你基本上是在说:我不在乎班级名称是什么,我只想让它拥有这两个属性。但在您的情况下,您确实关心名称是什么,否则您无法声明模型的类型。正如其他人提到的那样,你必须使用这两个属性显式创建类,将它作为查询结果使用,然后你可以声明模型的正确类型。