我是Razor的新手,我想知道如何在模型的日期对象中添加一天。我需要提出“第二天”链接
这是视图代码
<a href="@Html.DisplayNameFor(model => model.date)">Next Day</a>
答案 0 :(得分:4)
您也可以使用NextDay
方法将DateTime
作为Model
传递到DateTime.AddDays()
。
此方法返回一个新的DateTime
,它将指定的天数添加到此实例的值。
model.NextDay = startDate.AddDays(1);
然后在DisplayNameFor
中使用该属性:
<a href="@Html.DisplayNameFor(model => model.NextDay)">Next Day</a>
MSDN
此方法不会更改此DateTime的值。相反,它返回一个新的DateTime,其值是此操作的结果。
答案 1 :(得分:3)
您通常不希望在视图中“计算”值 - 这是模型的责任。最简洁的方法是在模型中添加一个计算下一个日期的属性:
public DateTime NextDay
{
get {return this.date.AddDays(1); }
}
然后在DisplayNameFor
中使用该属性:
<a href="@Html.DisplayNameFor(model => model.NextDay)">Next Day</a>
答案 2 :(得分:1)
model.date
是DateTime
吗?如果是,请使用DateTime.AddDays
。为此,可能不值得为您的模型添加特殊属性。
另外,您确定您的日期将以服务器可以理解的格式序列化吗?我建议您确保使用yyyy-MM-dd
对象的ToString()
方法为Urls中使用的日期指定特定格式,例如DateTime
。这样,对服务器区域设置的任何更改都不会影响您的站点。
<a href='@Html.DisplayNameFor(model => model.Date.AddDays(-1).ToString("yyyy-MM-dd"))'>Previous Day</a>
<a href='@Html.DisplayNameFor(model => model.Date.AddDays(1).ToString("yyyy-MM-dd"))'>Next Day</a>