1

我是 Razor 的新手,我想知道如何在模型的日期对象中添加一天。我需要放一个“第二天”链接

这是查看代码

<a href="@Html.DisplayNameFor(model => model.date)">Next Day</a>
4

3 回答 3

7

您也可以在using方法中传递NextDayas a 。此方法返回一个将指定天数添加到此实例的值的新方法。DateTimeModelDateTime.AddDays()DateTime

model.NextDay = startDate.AddDays(1);

然后在你的使用该属性DisplayNameFor

<a href="@Html.DisplayNameFor(model => model.NextDay)">Next Day</a>

有一小段关于它MSDN

此方法不会更改此 DateTime 的值。相反,它返回一个新的 DateTime,其值是此操作的结果。

于 2013-06-10T18:45:23.443 回答
3

您通常不想在视图中“计算”值 - 这是模型的责任。最简洁的方法是在模型中添加一个计算下一个日期的属性:

public DateTime NextDay 
{
    get {return this.date.AddDays(1); }
}

然后在你的使用该属性DisplayNameFor

<a href="@Html.DisplayNameFor(model => model.NextDay)">Next Day</a>
于 2013-06-10T18:47:43.040 回答
1

model.date一个DateTime?如果是这样,那么使用DateTime.AddDays. 仅仅为此向您的模型添加特殊属性可能不值得。

另外,您确定您的日期将以您的服务器可以理解的格式进行序列化吗?我建议您确保为要在 Urls 中使用的日期指定特定格式,例如yyyy-MM-dd,使用对象的ToString()方法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>
于 2013-06-10T18:46:13.103 回答