是否缓存了数据注释属性?如果是这样,如何在不同的文化之间切换
本文关键字:之间 文化 注释 数据 缓存 属性 如果 是否 | 更新日期: 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/。
干杯