我有一个人的以下模型:
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填充它但没有成功。有什么想法吗?
谢谢!
答案 0 :(得分:7)
看看这个问题:MVC4 DataType.Date EditorFor won't display date value in Chrome, fine in IE
可能的解决方案之一:
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]