MVC核心 - 从静态方法获取值到View

时间:2017-11-10 06:38:22

标签: asp.net-mvc asp.net-core

我已经编辑了我的问题以使其更清晰:

我的网站上有广告列表页面,其中多个广告按类别列出。目前,该页面连同其他信息一起显示提交给网站的确切日期时间广告。

现在,我还要显示网站上的小时数,天数或周数。

示例:

Ad was posted 2 days ago 
Ad was posted 1 week ago etc

类似于您在StackOverflow上发布的每条评论末尾所看到的内容,即:

– Stephen Muecke 5 hours ago
– Jilani pasha 4 hours ago
- Stephen Muecke 36 mins ago

我已经写了一个广告发布日期时间并返回小时,天或周的方法。

我想知道的是如何从我的视图中调用并将值(广告发布日期)传递给该方法? 或者实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用静态HtmlHelper函数:

public static class HtmlHelperExtensions
{
    public static MvcHtmlString GetAddedDate<TModel, TValue>(this HtmlHelper<TModel> html, DateTime creationDate)
    {
        var str = YourFunction(creationDate);
        return new MvcHtmlString(str);
    }
}

通过以下方式调用:@Html.GetAddedDate(Model.CreationDate)

或者您可以在ViewModel / Model中添加一个方法,如:

public class MyAd {
    public int Id;
    public DateTime CreationDate;
    public string GetCreationDate() {
         return YourFunction(CreationDate);
    }
}

通过以下方式调用:

@foreach(var model in Model) {
    <text>@model.GetCreationDate();</text>
}