Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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
C# 显示列表<;动态>;用剃刀_C#_Asp.net Mvc_Linq_Razor_Expando - Fatal编程技术网

C# 显示列表<;动态>;用剃刀

C# 显示列表<;动态>;用剃刀,c#,asp.net-mvc,linq,razor,expando,C#,Asp.net Mvc,Linq,Razor,Expando,我正在Razor视图中使用动态(匿名对象)列表并显示它 控制器代码: var res = (from c in _context.DM_Suivi_Us_Servis group c by new { c.designation_magasin,c.designation_uf} into g select new {

我正在Razor视图中使用动态(匿名对象)列表并显示它

控制器代码:

var res = (from c in _context.DM_Suivi_Us_Servis
                       group c by new { c.designation_magasin,c.designation_uf} into g
                       select new
                       {
                           g.Key.designation_magasin,
                           g.Key.designation_uf,
                           sum = g.Sum(c => c.nbr_us_servis),
                       }).ToList();

return View(res);
查看页面(Razor视图):

@model IEnumerable
@foreach(模型中的var项目)
{
@item.ToString()
}
显示此结果:

{ designation_magasin = CO3, designation_uf = NRG, sum = 65 } { designation_magasin = INC, designation_uf = NRG, sum = 0 } etc.. {designation_magasin=CO3,designation_uf=NRG,sum=65} {designation_magasin=INC,designation_uf=NRG,sum=0}等。。 但当我尝试显示每个项目属性时:

@foreach (var item in Model)
{
    <tr>
        <td>@item.sum</td>
        <td>@item.designation_uf</td>
        <td>@item.designation_magasin</td>
    </tr>
}
@foreach(模型中的变量项)
{
@项目.总额
@项目名称
@项目名称\u magasin
}
我收到以下错误


创建新视图模型:

public class YourName
{
    public string DesignationMagasin { get; set; }
    public string DesignationUf { get; set; }
    public int SumServis { get; set; }
}
并使用投影

var res = (from c in _context.DM_Suivi_Us_Servis
            group c by new { c.designation_magasin, c.designation_uf } into g
            select new YourName
            {
                DesignationMagasin= g.Key.designation_magasin,
                DesignationUf= g.Key.designation_uf,
                SumServis= g.Sum(c => c.nbr_us_servis),
            }).ToList();
在视图中添加
@型号列表


您可以找到有关MVC的更多信息。

使用这3个属性创建一个视图模型,并将查询投影到视图模型的集合中,然后将视图模型返回到视图创建一个视图模型,不要懒散,谢谢您的回答我已经尝试创建一个新的视图模型,但是我会经常在不同的ViewModel中使用这种方法,所以我认为最好使用匿名对象。您好,谢谢您的回答,它100%有效,但我会使用很多ViewModels,所以最好使用匿名类型?
var res = (from c in _context.DM_Suivi_Us_Servis
            group c by new { c.designation_magasin, c.designation_uf } into g
            select new YourName
            {
                DesignationMagasin= g.Key.designation_magasin,
                DesignationUf= g.Key.designation_uf,
                SumServis= g.Sum(c => c.nbr_us_servis),
            }).ToList();