我在下面有这段代码,如果我将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);
}
}
尝试将其放在标签中:
@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] 删除。
我来说两句