是否缓存了数据注释属性?如果是这样,如何在不同的文化之间切换

本文关键字:之间 文化 注释 数据 缓存 属性 如果 是否 | 更新日期: 2023-09-27 17:56:06

我有一个同时支持美国和加拿大的网站。 我的邮政编码验证使用我创建的自定义 RegEx 属性来允许对我的 RegEx 模式进行本地化:

public class RegularExpressionAttribute : System.ComponentModel.DataAnnotations.RegularExpressionAttribute
{
    public RegularExpressionAttribute(Type patternResourceType, string patternResourceName)
        : this(ResourceHelper.GetString(patternResourceType, patternResourceName))
    {
        this.PatternResourceName = patternResourceName;
        this.PatternResourceType = patternResourceType;
    }
}

问题是,如果客户端从一个国家切换到另一个国家,它会保留第一个国家/地区的正则表达式模式。 因此,如果他们在美国加载它,当他们切换到加拿大时,它会保持美国拉链模式,反之亦然。

我怎样才能让它始终使用适当的文化?

提前谢谢。

是否缓存了数据注释属性?如果是这样,如何在不同的文化之间切换

我找到了答案。 创建自定义数据注释模型元数据提供程序。 这真的很容易。 您只需要覆盖单个方法。 每次需要属性属性时都会调用它。 网络上有很多这方面的示例,例如:http://bradwilson.typepad.com/blog/2010/01/why-you-don-don-for-modelmetadataattributes.html和 http://www.freewebdevelopersite.com/2011/07/10/custom-metadata-providers-in-asp-net-mvc/。

干杯