我有一个post action方法,可以将数据与utc日期格式的日期一起正确保存到数据库中。 现在,我有一个get方法,它以适当的格式从数据库中获取所有数据,如下所示:
public JsonResult GetPosts()
{
var ret = (from post in db.Posts.ToList()
orderby post.PostedDate descending
select new
{
Message = post.Message,
PostedBy = post.PostedBy,
PostedByName = post.ApplicationUser.UserName,
PostedByAvatar = _GenerateAvatarUrlForUser(post.PostedBy),
PostedDate = post.PostedDate,
PostId = post.PostId,
});
return Json(ret, JsonRequestBehavior.AllowGet);
}
现在,我已经从nuget包中添加了getTimeAgo插件并添加到了脚本文件夹中。 在我的Scripts文件夹中,我有一个wallpost.js文件,其中包含用于更新模型的客户端模型和用于自动更新UI的客户端视图模型。 在这里,我有一个getTimeAgo函数来从utc datetime获取模糊时间戳。 它是这样的:
function getTimeAgo(varDate) {
if (varDate) {
return $.timeago(varDate.toString().slice(-1) == 'Z' ? varDate : varDate + 'Z');
}
else {
return '';
}
} 但在视图页面上,它只是显示NaNyearsAgo 。正如我之前所说,日期以适当的格式保存在数据库中,但我无法将utc日期时间转换为模糊时间戳。 我已将我的整个wallpost.js文件上传到此处以增加简洁性。http://pastebin.com/VVUuMScL 在我的View页面上,我正在显示包含用户图像的帖子:
<ul id="msgHolder" data-bind="foreach: posts">
<li class="postHolder">
<img data-bind="attr: { src: PostedByAvatar }" width="150" height="200">
<p><a data-bind="text: PostedByName"></a>: <span data-bind=" html: Message"></span></p>
<div class="postFooter">
<span class="timeago" data-bind="text: PostedDate"></span> <a class="linkComment" href="#" data-bind=" click: toggleComment">Comment</a>
</div>
</li>
请告诉我出了什么问题。