1

我有一个人的以下模型:

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; }
}

当我创建一个新的人时,它通常在数据库中创建出生日期的日期格式如下: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 填充它,但没有成功。有任何想法吗?

谢谢!

4

1 回答 1

7

看这个问题:MVC4 DataType.Date EditorFor won't display date value in Chrome, fine in IE

可能的解决方案之一:

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
于 2013-05-05T09:43:33.753 回答