MVC3 Default value for a DateTime property

筅森魡賤 提交于 2019-12-06 08:05:24

In the model class:

private DateTime _date = DateTime.Now;
public DateTime Date 
{
  get { return _date; }
  set { _date = value; }
}

In C# 6 or higher you can set a default value to an auto property.

public DateTime Date { get; set; } = DateTime.Now;

This is logically the same as the below code, use this for older version of C#, just shorter way of writing.

private DateTime _date = DateTime.Now;
public DateTime Date
{
    get { return _date; }
    set { _date = value; }
}

The above two ways will always return the current date & time. It will set the time when the object is constructed and always return that time there after. To always return the current latest date & time use a get property.

public DateTime Date
{
    get { return DateTime.Now; }
}
ctor()
{
   DateTo = DateTime.Now;
}

But beware, when returning View() that expects your object as model. You should always pass the objcet like View(new MyObject()), otherwise constructor won't be invoked and you won't get default value on DateTo.

Your code does not compile because Attributes need compile-time constants as parameters. DateTime.Now is not constant, so compiler complies.

You are not able to set DefaultValue to DateTime.Now because DateTime.Now is a method, I suggest you change the default constructor to set DateTo = DateTime.Now it will have the same effect.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!