我有这个剃刀代码
<td>@Model.ProcessedOn.Value.ToUniversalTime() UTC
@(Model.ProcessedOn.Value != null ? (Model.SendingOn.Value.AddTicks(-(Model.SendingOn.Value.Ticks % TimeSpan.TicksPerSecond)) - Model.AddedOn.Value.AddTicks(-(Model.AddedOn.Value.Ticks % TimeSpan.TicksPerSecond)))</td>
我需要检查Model.ProcessedOn
是否不同于null。
如果不同,我需要显示Model.SendingOn
和Model.AddedOn
之间的减法,它们是DateTime值。这段代码:
.AddTicks(-(Model.SendingOn.Value.Ticks % TimeSpan.TicksPerSecond))
只是删除毫秒。
我对@
有疑问。我已经尝试了不同的方法,但是这句话返回了错误,我确定我只是遇到了一些sintax错误。
有人可以帮我吗?
答案 0 :(得分:2)
您可以尝试使用@if([condition]){}
而不是ternary conditional operator ?:,因为您期望结果只需要一个判断即可。
?:
语法是
条件? first_expression:second_expression;
<td>
@Model.ProcessedOn.Value.ToUniversalTime() UTC
@if (Model.ProcessedOn.Value != null)
{
@(Model.SendingOn.Value.AddTicks(-(Model.SendingOn.Value.Ticks % TimeSpan.TicksPerSecond)) - Model.AddedOn.Value.AddTicks(-(Model.AddedOn.Value.Ticks % TimeSpan.TicksPerSecond)))
}
</td>
注意:
我将显示计算写在Controller
中,而不是View
,View
仅响应显示数据,该数据由Controller
提供。