将一天添加到模型的数据中

时间:2013-06-10 18:40:23

标签: c# asp.net asp.net-mvc-4 razor

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

这是视图代码

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

3 个答案:

答案 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.dateDateTime吗?如果是,请使用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>