将一天添加到模型数据中
本文关键字:数据 模型 一天 添加 | 更新日期: 2023-09-27 18:17:57
我是Razor的新手,我想知道如何将一天添加到模型的日期对象。我需要添加一个"next day"链接
视图代码
<a href="@Html.DisplayNameFor(model => model.date)">Next Day</a>
可以将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,其值是该操作的结果。
您通常不希望在视图中"计算"值—这是模型的责任。最干净的方法是在模型中添加一个属性来计算下一个日期:
public DateTime NextDay
{
get {return this.date.AddDays(1); }
}
然后在你的DisplayNameFor
:
<a href="@Html.DisplayNameFor(model => model.NextDay)">Next Day</a>
model.date
是DateTime
吗?如果是,那么使用DateTime.AddDays
。可能不值得为你的模型添加一个特殊的属性。
还有,你确定你的日期是以服务器能理解的格式序列化的吗?我建议您使用DateTime
对象的ToString()
方法,确保为url中使用的日期指定特定的格式,例如yyyy-MM-dd
。这样,对服务器区域设置的任何更改都不会影响站点。
<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>