如果句子不起作用,则用剃刀查看

时间:2018-07-24 20:36:35

标签: c# .net razor

我有这个剃刀代码

    <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.SendingOnModel.AddedOn之间的减法,它们是DateTime值。这段代码:

.AddTicks(-(Model.SendingOn.Value.Ticks % TimeSpan.TicksPerSecond))

只是删除毫秒。

我对@有疑问。我已经尝试了不同的方法,但是这句话返回了错误,我确定我只是遇到了一些sintax错误。

有人可以帮我吗?

1 个答案:

答案 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中,而不是ViewView仅响应显示数据,该数据由Controller提供。