我需要在ASP.NET MVC 3中創建一個顯示模板,該模板將顯示一個Timespan,僅顯示具有值集的屬性。這裏有一些例子來說明我的意思:僅顯示TimeSpan中的值顯示模板
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"
所以,你可以看到,我只需要顯示非零值;但我不知道如何......除了有許多如果陳述的不合理解決方案之外。我想找一個更好的方法。
這裏是我當前的代碼:
@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>}
}
爲什麼不把它解壓出來,然後調用一個實用程序或幫助程序? – Lloyd
是的,我也可以將其作爲擴展方法提取出來,但要求的是邏輯/代碼結構。 – Kev
我認爲彼得有一個類似於你的問題在他的問題的答案:http://stackoverflow.com/questions/842057/how-do-i-convert-a-timespan-to-a-formatted-string – Marco