如何将 DataAnnotations ErrorMessageResourceName 与自定义资源解决方案结合使用

问题描述 投票:0回答:1

我正在使用 C# 构建一个 MVC Web 应用程序。由于该网站将是多语言的,因此我实现了自己的资源管理器。该类负责根据当前线程区域性从数据库/缓存中获取所需的资源字符串,并且到目前为止工作正常。

我的问题是,我想使用我的自定义 ResourceManager 解决方案来获取验证错误消息,例如在属性上使用 Required 属性时。这可以吗?

c# asp.net-mvc validation resources data-annotations
1个回答
53
投票

RequiredAttribute允许使用自定义资源管理器

[Required(
    ErrorMessageResourceType = typeof(CustomResourceManager), 
    ErrorMessageResourceName = "ResourceKey")]
public string Username { get; set; }

更新:

另一种可能性是编写您的自定义属性:

public class CustomRequiredAttribute : RequiredAttribute
{
    public override string FormatErrorMessage(string name)
    {
        return YourCustomResourceManager.GetResource(name);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.