【问题标题】:count items by genre按类型计算项目
【发布时间】:2017-03-14 09:45:00
【问题描述】:

我正在尝试按类型计算项目以表示名称和徽章数量,但看起来我错过了一些东西 我的代码是这样的 在我的模型中:

  public Genre Genre { get; set; }
    [Required]
    public int GenreId { get; set; }

视图模型:

   public IEnumerable<LectureGig> UpcomingLectureGigs { get; set; }

控制器:

var upCommingLecture = _context.LectureGigs.Include(g => g.Artist).Include(g => g.Genre)
            .Where(g => (g.DateTime > DateTime.Now
                         && !g.IsCanceled ||
                         (g.IsWeekLy && (int) g.Days == (myDayOfWeek) || (int) g.Days >= 7)));

        var viewModel = new GigsViewModel
        {
            UpcomingLectureGigs = upCommingLecture.ToList().OrderBy(d => d.Days).ThenBy(g => g.GenreId),
            //remove for clear code
        };

        ViewBag.genre = viewModel.UpcomingLectureGigs.GroupBy(g => g.Genre.Name).Distinct();

我的看法:

 @foreach (var gen in ViewBag.genre)
{
    <button type="button" class="btn btn-primary">@gen.Name <span class="badge"></span></button>
}

我得到的错误是:'string' 不包含'Genre' 的定义 谢谢

【问题讨论】:

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


    【解决方案1】:

    你的这个:

    ViewBag.genres = viewModel.UpcomingLectureGigs.GroupBy(g=>g.Genre.Name).Select(g=> new KeyValuePair<string, int>(g.Key,g.Count())).ToList();
    
    
     @foreach (var g in ViewBag.genres)
            {
                <button type="button" class="btn btn-primary">@g.Key<span class="badge">@g.Value
                </span></button>
            }
    

    Working fiddle

    【讨论】:

    • 看看更新的版本。 צריך להיות בסדר :-)
    猜你喜欢
    • 2012-08-09
    • 2012-01-01
    • 2015-09-28
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多