如何在C#MVC中根据月和年显示详细信息

时间:2018-07-09 12:10:47

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

我是C#MVC的新手。我想根据月份和年份显示图像及其内容或详细信息。我怎么做?现在,我正在显示所有内容。但我想显示以下内容:

我的图像位于另一个称为“照片”的表格中。和日期内容在称为“文章”的不同表中。

  

2018

     

7月

     

[图片] [Hello World]

     

6月

     

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

查看:

@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>                   
  

数据库表: enter image description here

1 个答案:

答案 0 :(得分:2)

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

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

Foreach组,您应该通过以下方法打印月份名称及其关联的集合。

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

但是我建议您在服务器中执行这些操作,并返回包含精炼数据的模型。在View上不进行任何操作计算,仅接受iffor

查看:

   @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>
    }     

      }