Подтвердить что ты не робот

Поле должно быть числом. Как изменить это сообщение на другой язык?

Как я могу изменить эти сообщения для всех полей int, чтобы вместо того, чтобы говорить:

The field must be a number на английском языке, он показывает:

El campo tiene que ser numerico на испанском языке.

Есть ли способ?

4b9b3361

Ответ 1

Если вы используете ASP.NET MVC 4 и далее, отметьте это сообщение:

Локализация сообщений об ошибках по умолчанию в ASP.NET MVC и WebForms

В основном вы должны добавить следующий фрагмент кода в свой метод Application_Start() в Global.asax:

 ClientDataTypeModelValidatorProvider.ResourceClassKey = "Messages";
 DefaultModelBinder.ResourceClassKey = "Messages";

Щелкните правой кнопкой мыши проект ASP.NET MVC в обозревателе решений внутри Visual Studio и выберите Add => Add ASP.NET Folder => App_GlobalResources.

Теперь добавьте файл .resx внутри этой папки с именем Messages.resx.

Наконец, добавьте следующие строковые ресурсы в этот .resx файл:

Name                   Value
====                   =====
FieldMustBeDate        The field {0} must be a date.
FieldMustBeNumeric     The field {0} must be a number.
PropertyValueInvalid   The value '{0}' is not valid for {1}.
PropertyValueRequired  A value is required.

Вы должны быть добрым.

Обратите внимание, что значение, которое вас интересует, это FieldMustBeNumeric. Чтобы локализовать его на испанский язык, вам нужно добавить еще один файл ресурсов с именем Messages.es.resx. В этом конкретном файле .resx замените значение ресурса:

Name                Value
====                =====
FieldMustBeNumeric  El campo {0} tiene que ser numerico.

Если вы используете ASP.NET MVC 3 вниз, это решение может помочь вам достичь того же результата: fooobar.com/questions/180839/...

Ответ 2

вы можете настроить свое собственное сообщение для проверки.

 [RegularExpression("\d{9}",ErrorMessage="El campo tiene que ser numerico")]
 public decimal UnitPrice { get; set; } 

Ответ 3

Если вы хотите указать настраиваемое сообщение для каждого целого, double и float. вы можете использовать атрибут Range со строкой, как показано ниже.

    [Required(ErrorMessageResourceType = typeof(Global), ErrorMessageResourceName = "YearOfEstablishmentRequired")]
    [Range(0, int.MaxValue, ErrorMessageResourceType = typeof(Global), ErrorMessageResourceName = "ValidYearOfEstablishment")]
    [Display(Name = "Year Of Establishment")]
    public string YearOfEstablishment { get; set; }

Теперь, как указано выше, вы можете указать настраиваемое сообщение для каждого.