显示日期时间+ 1年

时间:2016-03-28 19:05:51

标签: c# asp.net-mvc datetime razor code-first

我的目标是获取培训的最新日期,并在添加1年后显示。我正在使用代码fisrt和ASP.net MVC。我的第一个表叫做Person,它包含了一个人的所有基本表。第二个表称为会话,它包含所有以前的日期,并且个人已经过培训。 Sessions.cs看起来像这样     使用系统;     使用System.Collections.Generic;     使用System.ComponentModel.DataAnnotations;

namespace CleryAct.Models
{
    public class Session
    {

        [Key]
        public int ID { get; set; }
        [StringLength(9, MinimumLength = 9, ErrorMessage = "Rocket Number must be longer than 9 characters.")]
        public string rockets { get; set; }
        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
        public DateTime training { get; set; }

        public virtual Person Person { get; set; }
    }
}

生成了我的视图的代码,我在视图中添加了一个新的脚手架项,并将其链接到人员数据库。我需要在下面显示+1年,但我收到当前代码的错误。

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.csa)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.lname)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.fname)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.rockets)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.email)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Sessions.ElementAtOrDefault(0).training.AddYears(1))*
        </td>
        <td>

变量是DateTime。我正在使用Razor MVC

2 个答案:

答案 0 :(得分:0)

这是因为DisplayFor()只喜欢没有附加附加代码的变量。

请改为尝试:

<td>
    @item.Sessions.ElementAtOrDefault(0).training.AddYears(1)
</td>

答案 1 :(得分:0)

 @{
                if (item.Sessions.Count > 0)
                {
                    int year = item.Sessions.ElementAt(0).training.Year;
                    ++year;
                    <div>@item.Sessions.ElementAt(0).training.Month.ToString("D2")-@item.Sessions.ElementAt(0).training.Day.ToString("D2")-@year.ToString()</div>

                }
            }