在我的 ASP.NET MVC3 站点中,我使用以下作为视图模型:
using DataResources = Namespace.For.The.Localization.Resources.IndexViewModel;
public class IndexViewModel, IValidatableObject {
private string _field1_check_value = "foo";
private string _field2_check_value = "bar";
[Required(ErrorMessageResourceName="Validation_Field1_Required", ErrorMessageResourceType=typeof(DataResources))]
[DataType(DataType.Text)]
public string Field1 { get; set; }
[Required(ErrorMessageResourceName="Validation_Field2_Required", ErrorMessageResourceType=typeof(DataResources))]
[DataType(DataType.Field2)]
public string Field2 { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) {
if (!(Field1.Equals(_field1_check_value) && Field2.Equals(_field2_check_value))) {
string[] memberNames = { "Field1", "Field2" };
yield return new ValidationResult(DataResources.Validation_InvalidCredentials, memberNames);
}
}
}
当使用除默认文化以外的任何文化查看站点时,Required
验证消息已正确本地化。但是,从该Validate
方法返回的消息始终采用默认区域性。
有没有办法正确本地化IValidatableObject.Validate
消息?