ASP.NET MVC 3 でタイムスパンを表示する表示テンプレートを作成し、値が設定されたプロパティのみを表示する必要があります。ここに私が何を意味するかを示すいくつかの例があります:
Timespan: 1 day, 2 hours, 3 minutes
Required display: "1 day, 2 hours, 3 minutes"
Timespan: 0 days, 2 hours, 1 minute
Required display: "2 hours, 1 minute"
Timespan: 0 days, 5 hours, 0 minutes
Required display: "5 hours"
ご覧のとおり、ゼロ以外の値のみを表示する必要があります。しかし、方法はわかりません...多くのifステートメントを含む洗練されていないソリューションは別として。もっと良い方法を見つけたい。
これが私の現在のコードです:
@model TimeSpan
@if (Model.Days > 0)
{
@Model.Days if (Model.Days > 1)
{<text>days</text>}
else
{ <text>day</text>}
}
@if (Model.Hours > 0)
{
if (Model.Days > 0)
{
@:,
}
@Model.Hours if (Model.Hours > 1)
{<text>hours</text>}
else
{ <text>hour</text>}
}
@if (Model.Minutes > 0)
{
if (Model.Days > 0 || Model.Hours > 0)
{
@:,
}
@Model.Minutes if (Model.Minutes > 1)
{<text>minutes</text>}
else
{ <text>minute</text>}
}