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)

Web サイトのソース コードを見ると、日付を表す値があることがわかります。表示されないだけです。また、javascriptを入力しようとしましたが、成功しませんでした。何か案は?

ありがとうございました!

4

1 に答える 1

7

この質問を見てください: MVC4 DataType.Date EditorFor は Chrome では日付の値を表示しませんが、IE では問題ありません

考えられる解決策の 1 つ:

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