2012-11-23 93 views
0

我有一個模型,其中包含DateTime字段TimeRecorded。我還爲DateTime定義了一個擴展方法,它將其與DateTime.Now進行比較,並描述它在非正式英語中的大約「多久以前」(與StackOverflow主頁上的時間戳不同)。Html.DisplayFor和屬性的方法

在我看來,我嘗試以下操作:

@String.Format("{0} - {1}", Html.DisplayFor(m => m.Value), 
    Html.DisplayFor(m => m.TimeRecorded.ToRelativeString())) 

我笑臉相迎的InvalidOperationException,通知我,我只能用DisplayFor爲「現場訪問,訪問屬性,一維數組索引或單 - 參數自定義索引器表達式「。

現在,我知道我可以很容易地爲此創建一個顯示模板;然而,爲了格式化單個值,我寧願避免擁有一個單獨的文件。在我目前的觀點中,有沒有一種「傳統」的方式來做到這一點?

感謝

回答

0

只要做到:

@String.Format("{0} - {1}", Html.DisplayFor(m => m.Value), Model.TimeRecorded.ToRelativeString()) 

其實...我不知道是什麼Model.Value是,但你可以簡單地做:

@string.Format("{0} - {1}", Model.Value, Model.TimeRecorded.ToRelativeString()) 
1

您可以創建代理屬性:

RelativeStringTimeRecord 
{ 
    get{return TimeRecorded.ToRelativeString()} 
} 

,並使用Html.DisplayFor(m => m.RelativeStringTimeRecord())