将一天添加到模型数据中

本文关键字:数据 模型 一天 添加 | 更新日期: 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.dateDateTime吗?如果是,那么使用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>