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

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

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

El campo tiene que ser numerico на испанском.

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

 Diego_DX23 авг. 2012 г., 22:38
в действительно изменить английское сообщение для испанского сообщения будет целью
 M.Azad23 авг. 2012 г., 22:34
когда вы хотите показать это сообщение?
 Diego_DX23 авг. 2012 г., 22:40
извините, я хочу показать это сообщение, когда в текстовом поле есть model.int, кто-то напишет на нем строку, jquery.validate и jquery.validate.unobtrusive покажут это сообщение на английском языке (мне нужно, чтобы это сообщение было на испанском языке для всех моих инт. поле)

Ответы на вопрос(3)

Решение Вопроса

Локализация сообщений об ошибках по умолчанию в 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, Чтобы локализовать этоSpanish, вы должны добавить еще один файл ресурсов с именемMessages.es.resx, В этом конкретном.resx файл замените значение ресурса на:

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

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

 05 окт. 2014 г., 18:40
Поле не переведено (по файлам ресурсов или чем-либо еще), но его можно легко изменить, добавив [Display (Name = & quot; YourText & quot;)].
 11 окт. 2013 г., 20:36
После долгих поисков этот ответ мне помог. Я был сбит с толку между проверкой Javascript иunobstrusive проверка, которая используетdata-val-number Атрибут HTML5. Спасибо.
 10 окт. 2014 г., 06:50
Но ... Могу ли я использовать другой файл ресурсов из другой библиотеки (из другой сборки)? Я не хочу создавать файл ресурса в проекте веб-сайта.
 24 авг. 2013 г., 20:52
@ivowiblo: действительно ... В чем проблема? Может быть, я могу помочь вам.
 24 авг. 2013 г., 20:48
это не работает для MVC3

исла, удвойте и с плавающей точкой. Вы можете использовать Range Attribute со String, как показано ниже.

    [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; }

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

 [RegularExpression("\d{9}",ErrorMessage="El campo tiene que ser numerico")]
 public decimal UnitPrice { get; set; } 
 Diego_DX23 авг. 2012 г., 22:52
да, я знаю, что так, но нет способа, которым я мог бы установить это для всех моих int, гарантированных сделать поле для поля?
 23 авг. 2012 г., 23:01
Да. Я думаю, что вы делаете это ... или создаете общедоступную маску для вашего элемента управления, которая привязывается к свойству числового типа. Или определите свое свойство в базовом классе, если оно является общим свойством.

Ваш ответ на вопрос