我成为.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;
}
}
本地运行时的当前结果: 已创建包含日期和时间的列,但日期和时间始终设置为当前日期和时间,而不是创建用户时。合理?如果不清楚,我可以提供更多信息。谢谢!
答案 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;
}
}