0

我有一个模型,其中包含一个DateTime字段TimeRecorded。我还为 定义了一个扩展方法,它将它与非正式英语的“多久以前”DateTime进行比较并大致描述了它(与 StackOverflow 主页上的时间戳不同)。DateTime.Now

在我看来,我尝试了以下方法:

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

我收到一个InvalidOperationException,通知我只能DisplayFor与“字段访问、属性访问、单维数组索引或单参数自定义索引器表达式”一起使用。

现在,我知道我可以轻松地为此创建一个显示模板;但是,我宁愿避免仅仅为了格式化单个值而拥有一个完整的单独文件。在我目前的观点中,是否有一种“传统”的方式来做到这一点?

谢谢

4

2 回答 2

1

您可以创建代理属性:

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

并使用Html.DisplayFor(m => m.RelativeStringTimeRecord())

于 2012-11-23T21:17:40.227 回答
0

做就是了:

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

事实上......我不知道是什么Model.Value,但你可以简单地做:

@string.Format("{0} - {1}", Model.Value, Model.TimeRecorded.ToRelativeString())
于 2012-11-23T21:19:00.577 回答