Я хочу отображать сообщения об ошибках для конкретной используемой культуры.
У меня есть Модель, которая использует DataAnnotations, и у меня также есть несколько файлов ресурсов (resx) с тем же сообщением об ошибке, но на другом языке.
Я знаю, что мне нужно каким-то образом связать аннотацию данных с идентификатором сообщения в моем файле ресурсов, но я не уверен в синтаксисе, как этого добиться.
Скажем, например, у меня есть файл DataAnnotation ниже. Мне нужно связать текст ErrorMessage с конкретным ключом в моем файле ресурсов. Как это должно выглядеть при реализации шага 3?
В дополнение, для таких полей, как почтовые индексы или телефонные номера (где это другое регулярное выражение, нужно ли мне извлекать сообщение из модели и применять его к каждому представлению, использующему модель?
Или есть способ указать, какое регулярное выражение я могу использовать в модели?
using System;
using System.ComponentModel.DataAnnotations;
using DataAnnotationsExtensions;
namespace YeagerTechModel
{
[MetadataType(typeof(Customer_Validation))]
public partial class Customer
{
}
public partial class Customer_Validation
{
public short CustomerID { get; set; }
[Required]
[StringLength(50)]
[DataType(DataType.EmailAddress)]
[Email]
public string Email { get; set; }
[StringLength(50, MinimumLength = 3, ErrorMessage = "Must have a minimum length of 3.")]
[DataType(DataType.Text)]
public string Company { get; set; }
[StringLength(50, MinimumLength = 3, ErrorMessage = "Must have a minimum length of 3.")]
[DataType(DataType.Text)]
public string FirstName { get; set; }
[StringLength(50, MinimumLength = 3, ErrorMessage = "Must have a minimum length of 3.")]
[DataType(DataType.Text)]
public string LastName { get; set; }
[StringLength(50, MinimumLength = 3, ErrorMessage = "Must have a minimum length of 3.")]
[DataType(DataType.Text)]
public string Address1 { get; set; }
[StringLength(50)]
[DataType(DataType.Text)]
public string Address2 { get; set; }
[StringLength(50, MinimumLength = 3, ErrorMessage = "Must have a minimum length of 3.")]
[DataType(DataType.Text)]
public string City { get; set; }
[StringLength(2, MinimumLength = 2, ErrorMessage = "Must have a length of 2.")]
[DataType(DataType.Text)]
public string State { get; set; }
[StringLength(10)]
[DataType(DataType.Text)]
[RegularExpression(@"^\d{5}(-\d{4})?$", ErrorMessage = "Invalid Zip")]
public string Zip { get; set; }
[StringLength(12)]
[DataType(DataType.PhoneNumber)]
[RegularExpression(@"^\s*([\(]?)\[?\s*\d{3}\s*\]?[\)]?\s*[\-]?[\.]?\s*\d{3}\s*[\-]?[\.]?\s*\d{4}$", ErrorMessage = "Invalid Phone")]
public string HomePhone { get; set; }
[StringLength(12)]
[DataType(DataType.PhoneNumber)]
[RegularExpression(@"^\s*([\(]?)\[?\s*\d{3}\s*\]?[\)]?\s*[\-]?[\.]?\s*\d{3}\s*[\-]?[\.]?\s*\d{4}$", ErrorMessage = "Invalid Phone")]
public string CellPhone { get; set; }
[StringLength(100)]
[DataType(DataType.Url)]
[Url]
public string Website { get; set; }
[StringLength(50)]
[DataType(DataType.EmailAddress)]
[Email]
public string IMAddress { get; set; }
public System.DateTime CreatedDate { get; set; }
public Nullable<System.DateTime> UpdatedDate { get; set; }
}
}