Локализация MVC образцового редактора связей по умолчанию

Я в настоящее время пытаюсь выяснить, как локализовать сообщения об ошибках, сгенерированные MVC. Позвольте мне использовать образцовый редактор связей по умолчанию в качестве примера, таким образом, я могу объяснить проблему.

Принятие у меня есть форма, где пользователь вводит их возраст. Пользователь затем входит "десять" в к форме, но вместо того, чтобы получить ожидаемую погрешность

"Возраст должен быть beween 18 и 25".

сообщение

"Значение 'десять' не допустимо для Возраста".

отображен.

Свойство возраста объекта определяется ниже:

    [Range(18, 25, ErrorMessageResourceType = typeof (Errors), 
        ErrorMessageResourceName = "Age", ErrorMessage = "Range_ErrorMessage")]    
    public int Age { get; set; }

После некоторого рытья я замечаю, что этот текст ошибки прибывает из System.Web.Mvc.Resources.DefaultModelBinder_ValueInvalid в MvcResources.resx файл.

Теперь, как может создать локализованные версии этого файла?

Поскольку решение, например, должно я загружать источник MVC и добавлять MvcResources.en_GB.resx, MvcResources.fr_FR.resx, MvcResources.es_ES.resx и MvcResources.de_DE.resx, и затем скомпилируйте мою собственную версию MVC.dll?

Но мне не нравится эта идея. Кто-либо еще знает лучший путь?

6
задан Robert Koritnik 1 December 2010 в 21:35
поделиться

2 ответа

См. http://forums.asp.net/p/1512140/3608427.aspx , прокрутите вниз до ответа Брэда Уилсона внизу страницы (сб, 09 января 2010 г., 3:20 ВЕЧЕРА). В DefaultModelBinder есть статические свойства, которые можно установить для локализации общих сообщений об ошибках.

Причина, по которой вместо сообщения [Range] используется типовое сообщение об ошибке, заключается в том, что [Range] предоставляет сообщение об ошибке проверки , но в данном конкретном случае это ошибка привязки . Абсолютно никакая среда не может надеяться преобразовать строку «десять» в Int32, поэтому она не может даже запустить валидатор [Range]. Это то, что управляет ключ "PropertyValueInvalid", упомянутый в этом форуме.

5
ответ дан 16 December 2019 в 21:38
поделиться

Пробовали ли вы: IDataErrorInfo свойство

Эта статья поможет

0
ответ дан 16 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: