gpt4 book ai didi

asp.net-mvc-3 - 使用资源字符串的 DisplayFormat 数据注释

转载 作者:行者123 更新时间:2023-12-02 01:39:37 26 4
gpt4 key购买 nike

我想使用 DisplayFormat 数据注释来格式化模型数据,但我想使用资源文件中存储的格式字符串。我已经能够将资源类型和名称传递给某些数据注释,例如指定错误消息时。如何告诉 DisplayFormat 从我的资源文件之一获取格式字符串?

最佳答案

标准的 DisplayFormat 属性不允许您执行此操作。您可以编写自定义属性来实现此功能:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class LocalizedDisplayFormatAttribute : Attribute, IMetadataAware
{
public string DataFormatStringResourceName { get; set; }
public bool ApplyFormatInEditMode { get; set; }

public void OnMetadataCreated(ModelMetadata metadata)
{
if (!string.IsNullOrEmpty(DataFormatStringResourceName))
{
if (ApplyFormatInEditMode)
{
metadata.EditFormatString = MyMessages.ResourceManager.GetString(DataFormatStringResourceName);
}
metadata.DisplayFormatString = MyMessages.ResourceManager.GetString(DataFormatStringResourceName);
}
}
}

然后:

public class MyViewModel
{
[LocalizedDisplayFormat(DataFormatStringResourceName = "DobFormat", ApplyFormatInEditMode = true)]
public DateTime Dob { get; set; }
}

MyResources.resx 中,您可以有一个 DobFormat 字符串值:{0:dd-MM-yyyy}

关于asp.net-mvc-3 - 使用资源字符串的 DisplayFormat 数据注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9381790/

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