我的一个模型包含一个看起来像这样的属性
private Nullable<DateTime> myDate;
[Display(Name = "My Date")]
[Editable(false)]
// [DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy HH:mm}", ApplyFormatInEditMode = true)]
public DateTime MyDate
{
get { return this.myDate?? new DateTime(1, 1, 1); }
set { this.myDate = value; }
}
// [DataType(DataType.Date)]
被注释掉,因为它是我做的一些实验的遗留物。
在我的“编辑”视图中,我像这样渲染属性
// input.noborder { border: 0 none; }
@Html.EditorFor(model => model.MyDate, new { @readonly = true, @class = "noborder" })
@Html.ValidationMessageFor(model => model.InvoiceDate)
我没有EditorTemplate
为 DateTime 类型创建。最后,在同一个视图的脚本中,我附上jQuery Datepicker
var $dpMyDate = $('[name=MyDate]');
$dpMyDate.datepicker();
我基本上想呈现一个只读的datepicker
(下一步是实现更多脚本,如果满足某些条件,它将启用它)。
一切似乎都正常,但是单击“保存”按钮后,验证告诉我该字段是必需的,但我预计它不是,因为我没有将[Required]
属性放入类中。此外(但这可能只是我假设太多)需要一个只读输入字段感觉很奇怪(应该如何填充它?)
我没有看到代码有任何问题,我错过了什么吗?