我的剃刀视图中有以下代码,我需要显示一个单词“New”,以防对象的StartDate等于当前小时(在一小时内添加): -
我尝试了以下内容,但即使刚刚添加了对象,也不会显示“新建”一词: -
@if (item.StartDate.Value.Date == DateTime.Today)
{
@item.StartDate.Value.ToString("h:mm tt")</span>
<span class="green b">
If (item.StartDate.Value.TimeOfDay.Hours ==
DateTime.Today.TimeOfDay.Hours)
{
New !
}
</span>
}
答案 0 :(得分:2)
如果您想检查它是否在一小时内,那么以下内容适合您:
if (DateTime.Now - StartDate < TimeSpan.FromHours(1))
这假设StartDate在创建时已设置为DateTime.Now
,而不是DateTime.Today
,因为这样可以在00:00:00获取当天的时间。
例如:
<span>@item.StartDate.ToString("h:mm tt")</span>
@if (DateTime.Now - StartDate < TimeSpan.FromHours(1))
{
<span class="green b">
New !
</span>
}
答案 1 :(得分:1)
您需要输出HTML:
If (item.StartDate.Value.TimeOfDay.Hours == DateTime.Today.TimeOfDay.Hours)
{
<span class="green b">New !</span>
}
并删除span
附近的其他if
标记。
答案 2 :(得分:1)
<span class="green b">
If (item.StartDate.Value.TimeOfDay.Hours == DateTime.Today.TimeOfDay.Hours)
{
@:New !
}
</span>
您忘了在代码中添加@:
。您也可以使用<text></text>
。
关于它的一个很好的参考:http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx
答案 3 :(得分:1)
您需要使用DateTime.Now而不是DateTime.Today。后者将小时,分钟和秒设置为零。也不需要调用TimeOfDay,DateTime.Now.Hour更简单。