我的目标是获取培训的最新日期,并在添加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
答案 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>
}
}