首页 > 解决方案 > 如何在 C# MVC 中显示基于月份和年份的详细信息

问题描述

我对 c# MVC 有点陌生。我想根据月份和年份显示图像及其内容或详细信息。我怎么做?现在我正在显示所有内容。但我想显示如下内容:

我的图像在不同的表中,称为“照片”。和日期内容在称为“文章”的不同表中。

2018

七月

[图片] [你好世界]

六月

[图片] [你好世界!!!你好世界]

看法:

@model Magzine.Models.Article


<div class="row">

    @if (Model.Image.Count > 0)
            
     

{

        
@foreach (var img in Photos)
        {
           
            <div class="col-md-2">
                <img class="Img" src="=@Url.Content(img.img_url) "  /></a>
            </div>
       }

     }               
            <div class="col-md-10">
                <strong>@Model.date</a></strong>
                <strong>@Model.content</a></strong>
            </div>    
        </div>                   
  

数据库表: 在此处输入图像描述

标签: c#asp.netasp.net-mvc

解决方案


这是一个想法。您的模型是文章列表。因此,您需要按文章的年份和月份对列表进行分组。

Model.GroupBy(item => item.date.Month)

Foreach 组,您应该通过下面的方法打印月份的名称和他的集合关联。

CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(group.Key)

但我建议您在服务器中执行这些操作并返回包含精炼数据的模型。View 上没有动作计算,只是if并且for可以接受。

看法:

   @foreach (var groupYear in Model.GroupBy(item => item.data.Year).Select(group => new { Key = group.Key, Items = group.ToList() })
       {{Key}}
        @foreach (var groupMonth in Items.GroupBy(item => item.date.Month))
             <span>{CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(groupMonth.Key)};
             @foreach (var article in groupMonth )    
             {
                  <div class="row">
                      <div class="col-md-2">
                          <img class="Img" src="=@Url.Content(article.img_url)"/></a>
                      </div>
                      <div class="col-md-10">
                          <strong>@article.date</a></strong>
                          <strong>@article.content</a></strong>
                      </div>
                  </div>
    }     

      }

推荐阅读