如果嵌套在if语句中,则无法使用剃刀代码在视图中呈现String.Format

用户名

我在下面有这段代码,如果我将String.Format放在if语句中,则视图中不会呈现任何内容。仅供参考-如果我从if语句中删除了分号,那么会有一条红线表示错误。在非if语句中不会发生这种情况

@{
   TimeSpan span = (ybEvent.UtcDate.AddDays(-1) - DateTime.UtcNow);
}
// this works
@String.Format("{0}d {1}hr {2}min", span.Days, span.Hours, span.Minutes)

// this doesn't work - does not render anything in view
@if (span.Days > 0)
  {
     String.Format("{0}d {1}hr {2}min", span.Days, span.Hours, span.Minutes);
   } else
   {
    if (span.Hours > 0)
    {
        String.Format("{0}hr {1}min", span.Hours, span.Minutes);
    } else
    {
      String.Format("{0}min", span.Minutes);
    }
 }
达林·迪米特罗夫(Darin Dimitrov)

尝试将其放在标签中:

@if (span.Days > 0)
{
    <text>@String.Format("{0}d {1}hr {2}min", span.Days, span.Hours, span.Minutes)</text>
}
else
{
    if (span.Hours > 0)
    {
        <text>@String.Format("{0}hr {1}min", span.Hours, span.Minutes)</text>
    }
    else
    {
        <text>@String.Format("{0}min", span.Minutes)</text>
    }
}

<text>标记在Razor中具有特殊含义,它将不会发送到输出。当然,您可以使用其他任何HTML标记代替<span><div>包装输出

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章