需要协助的果园CMS形法(Need help implementing an Orchard CMS

2019-11-03 16:53发布

我刚学果园CMS时遇到了问题实施形状的方法,而无需创建一整套的模式,驾驶员等返回的任意文本

我想在使用代码http://docs.orchardproject.net/Documentation/Accessing-and-rendering-shapes

public class DateTimeShapes : IDependency {
private readonly IClock _clock;

public DateTimeShapes(IClock clock) {
    _clock = clock;
    T = NullLocalizer.Instance;
}

public Localizer T { get; set; }

[Shape]
public IHtmlString DateTimeRelative(HtmlHelper Html, DateTime dateTimeUtc) {
    var time = _clock.UtcNow - dateTimeUtc;

    if (time.TotalDays > 7)
        return Html.DateTime(dateTimeUtc, T("'on' MMM d yyyy 'at' h:mm tt"));
    if (time.TotalHours > 24)
        return T.Plural("1 day ago", "{0} days ago", time.Days);
    if (time.TotalMinutes > 60)
        return T.Plural("1 hour ago", "{0} hours ago", time.Hours);
    if (time.TotalSeconds > 60)
        return T.Plural("1 minute ago", "{0} minutes ago", time.Minutes);
    if (time.TotalSeconds > 10)
        return T.Plural("1 second ago", "{0} seconds ago", time.Seconds);

    return T("a moment ago");
}

不过,我不能完全肯定这个地方应该去。 我试图把它无论是在控制器和与不成功的结果的模型。

所以,我的问题是,应该在哪里这段代码放在哪里? 什么是从模板调用它的正确方法?

Answer 1:

你只需将此代码放在一个名为Shapes.cs或DateTimeShapes.cs类(不是必须的,但那种与果园的公约)

然后,您可以在您的看法是这样使用它:

@{
    var date = DateTime.Now;
}

@Display.DateTimeRelative(date)


文章来源: Need help implementing an Orchard CMS Shape Method