Editorfor模板抱怨数据类型,不知道如何解决

时间:2013-12-10 22:08:07

标签: c# asp.net-mvc razor mvc-editor-templates editorfor

我有一个产品类:

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'. 

我需要在

中做些什么
  • 模型,
  • create.cshtml或
  • DateTime.cshtml

在数据为空时停止抱怨...

------------ --------------- 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"})
}

0 个答案:

没有答案