2

我的模型类Base1上有一个 System.ComponentModel.DataAnnotations格式化 DateTime 类型。

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
 public DateTime Date { get; set; }

当我从Base1Base2模型创建另一个模型时

public class Combined
    {       
        public Base1 Name1 { get; set; }
        public Base2 Name2 { get; set; }
    }

Name1 实例中的 DateTime 格式更改为默认值(数据和时间)。

有没有办法从基本模型“继承” DataAnnotations,所以我不必在视图层上格式化显示数据?

4

1 回答 1

1

我知道这不是您所要求的直接答案,但我强烈建议使用显示/编辑器模板。这种类型的东西正是他们设计的目的。例如,您可以创建一个模板来处理DateTime(将其放在 中Views\Shared\EditorTemplates\DateTime.cshtml)。然后在模板中:

@model System.DateTime
@Html.TextBox(string.Empty, Model.ToString("yyyy-MM-dd"))

然后当然像这样使用它:

@Html.EditorFor(...)

如果您有多个模板,您可以命名它们并选择使用哪一个。显示模板也是如此。

于 2013-11-04T16:06:27.740 回答