在视图中显示值之前修改值

本文关键字:修改 显示 视图 | 更新日期: 2023-09-27 18:36:20

>我有一个提要表

Id  Message     Created
1   aaa         2016-02-25 12:18:51
2   bbb         2016-02-24 12:18:51
3   ccc         2015-02-25 12:18:51

我可以像这样获得所有值

    public ActionResult Index()
    {            
        using (var db = new ApplicationDbContext())
        {
            var feeds = db.Feeds.ToList();
            return View(feeds);
        }
    }

我创建了一个将日期从日期时间更改为例如"1 天前"的类。这工作正常

var myTime = DateExtension.TimeAgo(DateTime.Parse("2016-02-25 12:18:51"));

我想在返回视图之前,在DateExtension.TimeAgo的帮助下修改feed中的所有日期。我该怎么做?

在视图中显示值之前修改值

试试这个:

return View(
    feeds.Select(x=>
    new Feed{
       Id=x.Id, 
       Message=x.Message, 
       Created=DateExtension.TimeAgo(DateTime.Parse(x.Created))
   }).toList());

其中,使用相同的字段为班级提供食物

在视图中使用 FeedDisplayModel 类

public class Class1TestController
{
    public ActionResult Index()
    {
        using (var db = new ApplicationDbContext())
        {
            var feeds = db.Feeds.Select(itm=>new FeedDisplayModel(itm)).ToList();
            return View(feeds);
        }
    }
}
class Feed
{
    public DateTime Created { get; set; }
    public int Id { get; set;}
    public string Message { get; set;}
}
class FeedDisplayModel : Feed
{
    public string Ago { get { return Created.TimeAgo(); } }
    public FeedDisplayModel(Feed itm){
        this.Created=itm.Created;
        this.Id=itm.Id;
        this.Message=itm.Message;
    }
}
public static class DateExtension
{
    public static string TimeAgo(this DateTime dt)
    {
        return "your implementation of ";
    }
}