首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将所选按钮显示为标签

如何将所选按钮显示为标签
EN

Stack Overflow用户
提问于 2018-07-24 04:34:06
回答 1查看 73关注 0票数 3

我做纽扣已经有很多年了。喜欢

2018 2017 2016 2015

我使用了一个for循环来获取年份作为按钮。

索引视图

@model List<MyRecord.Models.RecordList>



var year = DateTime.Now.Year;
for (var i = year; i > 2012; i--)
{
    var j = @i - 1;
    <div class="col-md-1 ">
        @Html.ActionLink(i.ToString(), "MyPage", new { i = i })
    </div>
}
<h3>@ModelYear.Year</h3>
@foreach (var groupMonth in Model.Records.GroupBy(recordLists => new { recordLists.date.Value.Year, recordLists.date.Value.Month }))
{
    <h3 class="monthHeader"> @System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(groupMonth.Key.Month)</h3>
    foreach (var recordLists in groupMonth)
    {
        <div class="row">
            @Html.Partial("_PartialView", recordList)
        </div>
    }
}

控制器

public ActionResult Archives(int i = 0)
{
    var recordLists = new List<RecordList>();

    if(i == 0)
        recordLists = _db.recordlists
            .Where(p => p.date.Value.Year == DateTime.Now.Year)
            .OrderByDescending(p => p.date)
            .ToList();
    else
        recordLists = _db.recordlists
            .Where(p => p.date.Value.Year == i)
            .OrderByDescending(p => p.date)
            .ToList();

     return View(new ModelYear{Records = recordLists, Year = i});
}

型号:

命名空间MyRecord.Models

{

using System;
using System.Collections.Generic;

公共分部类RecordList {

    public int id { get; set; }
    public string title { get; set; }
    public Nullable<System.DateTime> date { get; set; }
}

public class ModelYear
{
    public int Year { get; set; }

    public List<RecordList> Records { get; set; }
}

}

当我点击任何一年时,我会根据月份显示该年的记录。我可以得到月份的名称,而不是年份。我的问题是,我需要将选定的年份显示为标签或标题;如果我单击2016,我应该会看到类似以下内容:

**2016**
Jan
record 1

record 2

如何显示点击的年份?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-24 04:44:52

为什么不把它包含在Model类中:

public class Model
{
    public int Year {get;set;}

    public List<RecordList> Records {get;set;}
}

然后您可以在控制器中设置它:

public ActionResult Archives(int i = 0)
{

    var recordLists = new List<RecordList>();

      if(i == 0)
          recordLists = _db.recordlists.Where(p => p.date.Value.Year == DateTime.Now.Year)
                          .OrderByDescending(p => p.date).ToList();
      else{
          recordLists = _db.recordlists.Where(p => p.date.Value.Year == i).OrderByDescending(p => p.date).ToList();
      }

      return View(new Model{Records = recordLists, Year = i});
}

并在视图中显示它:

<h1>@Model.Year</h1>

@foreach (var groupMonth in Model.Records.GroupBy(recordLists => new { recordLists.date.Value.Year, recordLists.date.Value.Month }))
        {
            <h3 class="monthHeader"> @System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(groupMonth.Key.Month)</h3>
            foreach (var recordLists in groupMonth)
            {
                <div class="row">
                    @Html.Partial("_PartialView", recordList)
                </div>
            }
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51486839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档