填充EditorFor为日期时间

本文关键字:时间 日期 EditorFor 填充 | 更新日期: 2023-09-27 18:12:15

我为一个人建立了以下模型:

public class Person
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Display(Name = "Id")]
    public int Id { get; set; }
    [Display(Name = "Name")]
    [StringLength(30)]
    public string Name { get; set; }
    [Display(Name = "Last Name")]
    [StringLength(30)]
    public string LastName { get; set; }
    [Display(Name = "Birth date")]
    [DataType(DataType.Date)]
    public DateTime BirthDate { get; set; }
    [Display(Name = "Height")]
    [Range(120,250, ErrorMessage="Wrong height!")]
    public int Height { get; set; }
}

当我创建一个新的Person时,它通常在数据库中创建以下日期格式的BirthDate: dd.mm.yyyy

问题是当我试图编辑那个人的详细信息时,在EditorFor字段中没有显示出生日期。所有其他细节,如姓名,姓氏和身高,但没有出生日期。

那么,这将正确显示所有保存的值:

@Html.EditorFor(model => model.Person.Name)
@Html.EditorFor(model => model.Person.LastName)
@Html.EditorFor(model => model.Person.Height)

但是这没有显示任何内容或者在某些浏览器中它只显示日期格式,没有值:

@Html.EditorFor(model => model.Person.BirthDate)

当我查看网站的源代码时,我可以看到有一个表示日期的值。只是没有显示出来。我也尝试用javascript填充它,但没有成功。什么好主意吗?

谢谢!

填充EditorFor为日期时间

看这个问题:MVC4 DataType。日期编辑器在Chrome中不会显示日期值,在IE中可以

一个可能的解决方案:

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]