Asp.net mvc 3 在复杂对象上应用模型元数据

Asp.net mvc 3 在复杂对象上应用模型元数据,asp.net-mvc-3,modelmetadata,Asp.net Mvc 3,Modelmetadata,我有下面的场景 public class Foo { public Bar FooBar { get; set; } } public class Bar { [DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")] public DateTime BirthDay { get; set; } } 现在,当我使用EditorFor时,我想在我的DateTime上

我有下面的场景

public class Foo {
    public Bar FooBar { get; set; }
}

public class Bar {
    [DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
    public DateTime BirthDay { get; set; }
}
现在,当我使用EditorFor时,我想在我的DateTime上应用DataFormatString

@Html.EditorFor(x => x.FooBar.BirthDay);

上面的代码没有使用DisplayFormatAttribute来呈现正确的日期,因此如何解决这个问题?

我认为您可能必须使用这个

public class Bar {
    [DataType(DataType.Date), DisplayFormat( DataFormatString="{0:dd/MM/yy}", ApplyFormatInEditMode=true )]
    public DateTime BirthDay { get; set; }
}
或者你可以这样使用

[DisplayFormat(DataFormatString = "{0:d}")]
[DataType(DataType.Date)]
public DateTime BirthDay { get; set; }
在你看来,你可以试试这个

@Html.EditorFor(x => x.FoorBar.BirthDay.ToString("dd/MM/yyyy"))

这是结果2012年11月7日12:00:00 Am为什么不试试html.TextBoxFor而不是html.EditodFor。。。我确信这适用于TextBoxForNo,它与那一个没有相同的例外