如何使用@Model(TimeSpan)在剃刀中使用三元运算符?

Gui*_*hez 5 c# asp.net timespan ternary-operator razor

我试图在这段代码中使用三元运算符,其Model.FirstTechSupportAssigneeElapseTime类型为TimeSpan?:

<dt>Assigned In</dt>
<dd> 
@if (@Model.FirstTechSupportAssigneeElapseTime == null)
     { @:N/A } 
else 
     { @Model.FirstTechSupportAssigneeElapseTime } 
</dd>
Run Code Online (Sandbox Code Playgroud)

我试图实现三元运算符,但我失败了,@的处处让我感到困惑.在这种情况下,是否可以拥有三元运算符?

谢谢.

Tra*_*s J 12

请记住你所处的范围.在if语句中你不需要,@因为你在c#范围内.在条件语句中你是剃刀范围,所以你需要@

<dt>Assigned In</dt>
<dd> 
@if (Model.FirstTechSupportAssigneeElapseTime == null)
{ 
    @:N/A 
} 
else 
{
    @Model.FirstTechSupportAssigneeElapseTime
} 
</dd>
Run Code Online (Sandbox Code Playgroud)

这也可以在使用三元运算符时完成,假设elapsetime是一个字符串(如果页面加载时不会出现转换编译错误)

<dt>Assigned In</dt>
<dd> 
@( Model.FirstTechSupportAssigneeElapseTime == null ? "N/A" : Model.FirstTechSupportAssigneeElapseTime.ToString() )
</dd>
Run Code Online (Sandbox Code Playgroud)