Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 计算项目的元素数并返回到视图_Asp.net_Asp.net Mvc - Fatal编程技术网

Asp.net 计算项目的元素数并返回到视图

Asp.net 计算项目的元素数并返回到视图,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我有一个数据库,其中有一个表cars,其中有一些cars,每个设备都有一个类型。我想查看一下表中每种类型的车有多少辆。到目前为止,我所拥有的是控制器 控制器: public ActionResult CountCars() { var count = db.Cars.Where(s => s.Cars.Name.Contains("Ford")).Count(); var view = new CountCarsViewModel()

我有一个数据库,其中有一个表cars,其中有一些cars,每个设备都有一个类型。我想查看一下表中每种类型的车有多少辆。到目前为止,我所拥有的是控制器

控制器:

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
@模型。计数
但是它不包括任何汽车。。刚刚得到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更改为包含要保存的属性,如下所示:-

public class CountCarsViewModel
{
    public string CarName {get; set; }
    public int Count { get; set; }
}

我认为问题在于在“returnpartialview”(_MainSideBarPartialLayout,view);”中使用“PartialView”。在普通视图上尝试查看结果,然后使其成为局部。如果坚持使用局部视图,可能需要局部视图的触发器来显示正确的计数

您确定where子句匹配了任何内容吗?调试并查看返回的内容。最好将对
Count
的调用移到另一行,这样您就可以实际看到查询通常返回的内容。
Car
上有
Cars
属性也是可疑的。换句话说,您的查询不应该是
s.Name.Contains(…)
?在这方面,在这里查看您的实际实体类可能会有所帮助。谢谢您的回答@rahulsingh。但它仍然返回0..我认为你走对了方向。但是,我只想计算一个项目的数量。@PerSolbakken-在这种情况下,从
count
中删除
count()
,然后调试,看看您是否得到了任何项目,还有车是否存在于
db.Cars
中。就我的回答而言,它将返回表中的每辆车和车的数量。在我从CountCars()方法创建了一个新视图后,它突然工作了。我得到了正确的物品数量。但它对partialview不起作用。。如何使用PartialView显示计数?它在视野范围内运行良好。有线。。
public class CountCarsViewModel
{
    public string CarName {get; set; }
    public int Count { get; set; }
}