Как я могу изменить эти сообщения для всех полей int
, чтобы вместо того, чтобы говорить:
The field must be a number
на английском языке, он показывает:
El campo tiene que ser numerico
на испанском языке.
Есть ли способ?
Как я могу изменить эти сообщения для всех полей int
, чтобы вместо того, чтобы говорить:
The field must be a number
на английском языке, он показывает:
El campo tiene que ser numerico
на испанском языке.
Есть ли способ?
Если вы используете 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/...
вы можете настроить свое собственное сообщение для проверки.
[RegularExpression("\d{9}",ErrorMessage="El campo tiene que ser numerico")]
public decimal UnitPrice { get; set; }
Если вы хотите указать настраиваемое сообщение для каждого целого, 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; }
Теперь, как указано выше, вы можете указать настраиваемое сообщение для каждого.