我遇到了一个问题,试图让 foreach 代码块在 mvc 控制器和视图模型中工作。
我想要实现的是循环遍历日期时间值,如果小于 60 秒,则显示秒数。如果超过 60 秒但少于 1 小时显示分钟。否则显示完整的日期时间。
我可以让上述工作,但它只显示第一条记录。我曾尝试将 foreach 循环放在不同的地方,但似乎无法让它工作。
希望有一双新鲜的眼睛来帮助解决这个问题。
public class MostRecentPostsViewModel
{
public List<MembersForumProperties> SelectMostRecentForumPosts { get; set; }
public string DateAndTimeOfForumPosts { get; set; }
}
public class IsPostLessThanOneHour
{
public static string DisplayPostInMinutesOrSeconds(string displyMostRecentForumPosts)
{
string displayTime = string.Empty;
//foreach (var postTime in mv.SelectMostRecentForumPosts)
//{
// dte = postTime.ForumMemberDateTimePostedPost;
//}
DateTime dtn = DateTime.Now;
DateTime timeOfPost = Convert.ToDateTime(displyMostRecentForumPosts);
TimeSpan ts = dtn - timeOfPost;
if (ts.TotalSeconds > 0 && ts.TotalSeconds < 60)
{
displayTime = "about " + ts.Seconds + " seconds ago";
}
else if (ts.TotalSeconds > 61 && ts.TotalSeconds < 3600)
{
displayTime = "about " + ts.Minutes + " minutes ago";
}
else
{
displayTime = displyMostRecentForumPosts;
}
return displayTime;
}
}
控制器
public PartialViewResult MostRecentMembersPosts()
{
var displyMostRecentForumPosts = _imf.DisplayMostRecentForumPosts().ToList();
var loopThroughDateTimes = displyMostRecentForumPosts.ToList();
var test = "";
foreach (MembersForumProperties t in loopThroughDateTimes)
{
test = t.ForumMemberDateTimePostedPost;
}
var membersMostRecentPost = new MostRecentPostsViewModel
{
SelectMostRecentForumPosts = displyMostRecentForumPosts,
DateAndTimeOfForumPosts = IsPostLessThanOneHour.DisplayPostInMinutesOrSeconds(test)
};
return PartialView("pvMostRecentMembersPost",membersMostRecentPost);
}