如何获取带有参数的本地化属性错误消息?

How to get a localized attribute error message with parameters?

我使用验证属性并且我想本地化我的错误消息。我发现 this:

[RegularExpression(
    "^[a-zA-Z0-9_]*$", 
    ErrorMessageResourceType=typeof(Resources.RegistrationModel),
    ErrorMessageResourceName= "UsernameError"
)]

您甚至可以使用这样的资源字符串来完成此操作:

"{0} is in an invalid format."

它会填写属性名字。几乎是我想要的,但是我想传递一个特定的字符串,如 "User name""Phone number",而不是 属性 名称(实际上我也想从资源文件中获取这些字符串)。

这可能吗?或者我的资源文件中是否必须有很多非常相似的字符串?

您应该使用 Display 属性。

例子

[Display(Name = "Description", ResourceType = typeof(Messages))]
public MessageModel Description { get; set; }

当然,Name参数应该像资源中的字符串一样命名。