簡體   English   中英

需要幫助來實現Orchard CMS Shape方法

[英]Need help implementing an Orchard CMS Shape Method

我只是在學習Orchard CMS,在實現shape方法以返回一些任意文本而又不創建整套模型,驅動程序等時遇到麻煩。

我正在嘗試使用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");
}

但是,我不確定這應該去哪里。 我嘗試將其放入控制器和模型中,但結果均不成功。

所以,我的問題是,該代碼應放在哪里? 從模板調用它的正確方法是什么?

您可以僅將這段代碼放在一個名為Shapes.cs或DateTimeShapes.cs的類中(不是必需的,但與Orchard有點類似)

然后可以在視圖中使用它,如下所示:

@{
    var date = DateTime.Now;
}

@Display.DateTimeRelative(date)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM