gpt4 book ai didi

c# - "Inheriting"创建 ViewModel 时来自多个模型的 DataAnnotations

转载 作者:太空宇宙 更新时间:2023-11-03 13:33:09 24 4
gpt4 key购买 nike

我的模型类 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 实例中的日期时间格式更改为默认格式(数据和时间)。

有没有办法从基本模型“继承”DataAnnotations,这样我就不必在 View 层上格式化显示数据?

最佳答案

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

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

然后当然可以像这样使用它:

@Html.EditorFor(...)

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

关于c# - "Inheriting"创建 ViewModel 时来自多个模型的 DataAnnotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19771528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com