2012-11-23 48 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())