我正在尝试在MVC 5中找到DataAnnotations的默认消息的密钥。
目前,我发现并使用了那些成功的东西:
ClientDataTypeModelValidatorProvider.ResourceClassKey = "Messages";
DefaultModelBinder.ResourceClassKey = "Messages";
它们位于资源文件中:App_GlobalResources \ Messages
这些行已添加到我的global.asax:
中[Display(Name = "Website", ResourceType = (typeof(Properties.Resources)))]
[DataType(DataType.Url)]
[Url]
public string Website { get; set; }
[Display(Name = "Email", ResourceType = (typeof(Properties.Resources)))]
[DataType(DataType.EmailAddress)]
[EmailAddress]
public string Email { get; set; }
[Display(Name = "PhoneNumber", ResourceType = (typeof(Properties.Resources)))]
[Required]
[DataType(DataType.PhoneNumber)]
[Phone]
public string PhoneNumber { get; set; }
现在,所有这一切都很完美,我在资源文件中配置的消息正确显示。
但是现在我正在尝试为其他错误消息找到资源的属性名称,目前正在寻找这些:
my_module
我尝试了一些组合,比如FieldMustBeEmail和FieldMustBeEmailAddress,但它没有用。它们是否与FieldMustBeDate一样可用,或者我需要创建自己的DataAnnotations?
答案 0 :(得分:2)
我检查了MVC的源代码,唯一的方法是设置属性的 ErrorMessageResourceType 和 ErrorMessageResourceName ,然后将其添加到我的本地资源中文件:
[Display(Name = "Email", ResourceType = (typeof(Properties.Resources)))]
[DataType(DataType.EmailAddress)]
[EmailAddress(ErrorMessageResourceType = (typeof(App_GlobalResources.Messages)), ErrorMessageResourceName = "EmailAddressAttribute_Invalid")]
public string Email { get; set; }