在.NET Admin视图中显示为用户创建的日期

时间:2015-12-08 17:15:12

标签: .net datetime kendo-ui

我成为.NET开发人员2个月,这是我的第一篇文章。仅供参考。我尽力研究这个问题,但我没有运气。提前谢谢,我会尽量详细说明。

我正在处理的网站有一个管理页面,在管理页面中,有一个按钮可转到“管理用户”视图。在该视图中,管理员可以创建新用户或查看/管理用户列表。客户遇到的问题:在网格上创建用户时,视图不会显示。这是我到目前为止所做的尝试。

首先,我将以下dateCreated代码添加到AdminUserListViewModel

的底部
[Display(Name = "Date Created")]
private DateTime? dateCreated;
public DateTime DateCreated
{
   get { return dateCreated ?? DateTime.UtcNow; }
   set { dateCreated = value; }
}

其次,我在我的用户视图索引中添加了代码。该应用程序正在使用Kendo,所以我查看了Kendo文档和Stack,发现此代码用于在Kendo网格中显示DateTime:     columns.Bound(b => b.DateCreated).ClientTemplate("#= kendo.toString(kendo.parseDate(CreatedDate), 'dd/MM/yyyy') #");

第三,我在Create User方法中将以下代码添加到UserService:

DateCreated = DateTime.UtcNow

第四,这是我创建列表的方法。

public List<AdminUserListViewModel> GetAll()
{
using (var context = Dependencies.AppDataContext)
{
    var result = (
    from r in context.Users
    join u in context.UNUsers on r.Id equals   
    u.ApplicationUserId.ToString()
    select new AdminUserListViewModel
{
    Username = r.UserName,
    ....
    DateCreated = DateTime.UtcNow, 
}).ToList();
return result;
}
}

本地运行时的当前结果: 已创建包含日期和时间的列,但日期和时间始终设置为当前日期和时间,而不是创建用户时。合理?如果不清楚,我可以提供更多信息。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的问题是网格显示当前日期而不是项目创建日期,您应该查看获取数据的查询。

您可以分配当前日期,而不是从数据库中获取日期:

public List<AdminUserListViewModel> GetAll()
{
using (var context = Dependencies.AppDataContext)
{
    var result = (
    from r in context.Users
    join u in context.UNUsers on r.Id equals   
    u.ApplicationUserId.ToString()
    select new AdminUserListViewModel
{
    Username = r.UserName,
    ....
    DateCreated = DateTime.UtcNow, <== HERE: DateCreated = r.DateCreated
}).ToList();
return result;
}
}