c# - DataAnnotations 属性是否已缓存?如果是这样,如何在不同文化之间切换?

标签 c# validation attributes data-annotations custom-attributes

我有一个同时支持美国和加拿大的网站。我的邮政编码验证使用我创建的自定义 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;
    }
}

问题是,如果客户端从一个国家切换到另一个国家,它会保留第一个国家的 RegEx 模式。因此,如果他们在美国加载它,当他们切换到加拿大时它会保留美国的 zip 模式,反之亦然。

我怎样才能让它始终使用正确的文化?

提前致谢。

最佳答案

我找到了答案。创建自定义 DataAnnotationsModelMetadataProvider。这真的很容易。您只需要重写一个方法。每次需要 property 属性时都会调用它。网上有很多这样的示例,例如:http://bradwilson.typepad.com/blog/2010/01/why-you-dont-need-modelmetadataattributes.htmlhttp://www.freewebdevelopersite.com/2011/07/10/custom-metadata-providers-in-asp-net-mvc/ .

干杯

关于c# - DataAnnotations 属性是否已缓存?如果是这样,如何在不同文化之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5938259/

相关文章:

c# - 在 IKVM 中使用 C# 中的 Java 标准库时出现问题

php - 在 html 中显示错误消息

validation - Haskell IO,在同一行中获取两个输入并进行验证

git - .gitattributes 与 merge=ours 的正确用法是什么

Python AttributeError 对象属性是只读的

c# - C# WPF 中的 "Simple MVVM Toolkit"子模型类

javascript - JQuery Draggable 对象,设置包含动态 div 标签

javascript - jQuery 验证插件在检查用户名时抛出错误

javascript - 遍历 DOM 树并检查是否有任何父级具有类

c# - MVVM OnPropertyChanged 在使用赋值运算符时不改变 View (PropertyChanged 变为空)