我有一个产品类:
public class Product
{
[Key]
public int ProductID { get; set; }
[Required]
public string Title { get; set; }
[Required]
[DataType(DataType.Date)]
public DateTime ADate { get; set; }
}
当我去创建产品时,显然字段将是空的但我仍然想设置我的create.cshtml类型产品:
@model WebApplication.Domain.Entities.Product
所以现在这是在我的create.cshtml中完成的,我开始为它编写表单并为我的ADate属性添加一个编辑器。
@Html.EditorFor(model => model.ADate, "DateTime" )
反过来又使用编辑器模板:
@model System.DateTime
@Html.TextBox(
string.Empty,
Model.ToString("yyyy-MM-dd"),
new { @class="datepicker", @type = "date"})
但是当我这样做时,它会在运行时抱怨:
The model item passed into the dictionary is null, but this dictionary requires a non-null model item of type 'System.DateTime'.
我需要在
中做些什么在数据为空时停止抱怨...
------------ --------------- EDIT
我最终在我的DateTime.cshtml中执行此操作: 这看起来不错吗?
@model System.DateTime?
@if( Model.HasValue )
{
@Html.TextBox(
string.Empty,
Model.Value,
new { @class="date", @type = "date"})
}
else
{
@Html.TextBox(
string.Empty,
null,
new { @class="date", @type = "date"})
}