【问题标题】:Declare Generic IEnumerable in Partial View在部分视图中声明通用 IEnumerable
【发布时间】:2017-09-11 18:18:29
【问题描述】:

很确定这个问题之前已经回答过了,我只是在搜索时没有使用正确的措辞......

我是 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 是什么,我也不知道如何正确声明它。还是我需要为这些结果创建一个模型?

【问题讨论】:

标签: c# asp.net-mvc linq-to-sql


【解决方案1】:

使用new { Domain = g.Key, Count = g.Count() },您正在创建新的anonymous type。您基本上是在说:我不在乎类名是什么,我只希望它具有这两个属性。但是在您的情况下,您确实关心名称是什么,否则您无法声明模型的类型。正如其他人所提到的,您必须使用这两个属性显式创建类,将其用作查询结果,然后您可以声明模型的正确类型。

【讨论】:

  • 感谢您解释对模型类的需求。
猜你喜欢
  • 1970-01-01
  • 2015-04-21
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多