我试图让我的帖子有一个预设的日期时间字段,但当我去编辑我的帖子时,它们被设置为01/01/2015 00:00
,而我宁愿让它们自动像14/07/2015 13:53
(或无论当前的日期时间是什么)。我想在我的datetime属性上面添加一行,如[DateTime.current]
或沿着这些行添加一些东西可能会起作用,但我还没有成功。
public class Post
{
public int PostID { get; set; }
public Guid UserID { get; set; }
public int ThreadID { get; set; }
public string PostTitle { get; set; }
public DateTime PostDateTime { get; set; }
public string PostBody { get; set; }
}
如果这是您的模型,您可以使用默认构造函数。
public class Post
{
public int PostID { get; set; }
public Guid UserID { get; set; }
public int ThreadID { get; set; }
public string PostTitle { get; set; }
public DateTime PostDateTime { get; set; }
public string PostBody { get; set; }
public Post()
{
PostDateTime = DateTime.Now;
}
}
模型绑定发生在模型创建之后,所以它不会影响MVC。
为什么不给Post类添加一个构造函数,并传递你想要初始化Post的初始值呢?
public class Post
{
public int PostID { get; set; }
public Guid UserID { get; set; }
public int ThreadID { get; set; }
public string PostTitle { get; set; }
public DateTime PostDateTime { get; set; }
public string PostBody { get; set; }
public Post( DateTime initialValue)
{
PostDateTime = initialValue;
}
}
在构造函数中设置您想要的默认DateTime
public class Post
{
public Post()
{
PostDateTime = DateTime.Now;
}
public int PostID { get; set; }
public Guid UserID { get; set; }
public int ThreadID { get; set; }
public string PostTitle { get; set; }
public DateTime PostDateTime { get; set; }
public string PostBody { get; set; }
}
当这个模型从客户端提交的值绑定到服务器端时,将创建一个Post
实例,并在构造函数中设置一个PostDateTime
值,但随后该值将被模型绑定过程覆盖并设置为客户端提交的值,因为PostDateTime
是一个具有公共setter的属性。