我在下面有这个代码,如果我将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);
}
}
答案 0 :(得分:4)
尝试将其放入标签内:
@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>
来包装输出