计算项目的元素数量并返回到视图

时间:2015-11-12 19:20:04

标签: asp.net asp.net-mvc

我有一个数据库,我有一辆有一些汽车的桌面车,每个设备都有一个类型。我想看一下我在桌子上看到的每种类型的汽车数量。我现在所拥有的是控制器。

控制器:

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.

任何人都可以提供解决方案吗?

2 个答案:

答案 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“;”。在普通视图上尝试查看结果,然后将其部分化。如果您坚持使用局部视图,可能需要触发部分视图以显示正确的计数。