有一个模型,模型的属性之一:
[Required(ErrorMessageResourceType = typeof(ServerLocale), ErrorMessageResourceName = "DateValidationMessage")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
[Display(ResourceType = typeof(ServerLocale), Name = "DateLabel")]
public DateTime Date { get; set; }
模型是从View填充的,这个属性在View上是这样显示的:
<div class="control-group">
<div class="control-label">@Html.LabelFor(m => m.Date)</div>
<div class="controls">@Html.EditorFor(m => m.Date)<br/>@Html.ValidationMessageFor(m => m.Date)</div>
</div>
但是第一次打开表单时,字段中的值是这样的:
01.01.0001
问题是如何创造价值DateTime.Now.AddMonth(1)
???
24.01.2017
重要的是只有当模型为空(用户第一次打开表单,或刷新页面)时才将此值设置为属性,如果用户更改了此字段中的日期,则用户的值应该来到控制器
这里有三种方法,但其中一种方法不能使用 AddMonths。
1.通过构造函数
2.自动属性初始化
3.通过注解,但是这里不行