我有一个数据库,我有一辆有一些汽车的桌面车,每个设备都有一个类型。我想看一下我在桌子上看到的每种类型的汽车数量。我现在所拥有的是控制器。
控制器:
public ActionResult CountCars()
{
var count = db.Cars.Where(s => s.Cars.Name.Contains("Ford")).Count();
var view = new CountCarsViewModel()
{
Count = count
};
return PartialView("_MainSideBarPartialLayout", view);
}
ViewModel类:
public class CountCarsViewModel
{
public int Count { get; set; }
}
查看:
@model Project.ViewModels.Home.CountCarsViewModel
<span class="badge">@Model.Count</span>
但它不会算任何车..只是得到0.
任何人都可以提供解决方案吗?
答案 0 :(得分:0)
您当前的查询返回0
可能是因为没有匹配的汽车名称为Ford
,您必须对其进行调试并查看发生了什么。要回答表格中每种类型的汽车数,您需要GroupBy
: -
var view= db.Cars.GroupBy(s => s.Cars.Name)
.Select(x => new CountCarsViewModel
{
CarName = x.Key,
Count = x.Count()
});
return PartialView("_MainSideBarPartialLayout", view);
将ViewModel更改为包含要保存CarName
的属性,如下所示: -
public class CountCarsViewModel
{
public string CarName {get; set; }
public int Count { get; set; }
}
答案 1 :(得分:-1)
我认为问题是在“返回PartialView(”_ MainSideBarPartialLayout“,view)中使用”PartialView“;”。在普通视图上尝试查看结果,然后将其部分化。如果您坚持使用局部视图,可能需要触发部分视图以显示正确的计数。