Где все список сообщений об ошибках по умолчанию для DataAnnotations в MVC 3

Еще один вопрос по локализации MVC ...

Я пытаюсь локализовать приложение ASP.Net MVC 3, используя локализованные файлы ресурсов для отображения текстов в представлениях, как рекомендуется.

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

Я знаю, что вы можете указать файл ресурсов и ключ в каждом атрибуте:

[Required(
ErrorMessageResourceType = typeof(CustomResourceManager), 
ErrorMessageResourceName = "ResourceKey")]
public string Username { get; set; }

и даже что лучше и предпочтительнее, вы можете переопределить сообщение по умолчанию, например: Ресурс по умолчанию для аннотаций данных в ASP.NET MVC , поэтому вы можете оставить такие атрибуты, как:

[Required]
public string Username { get; set; }

Это последний подход. Я следил, и он работает, но только тогда, когда DataAnnotation, который вы хотите переопределить, имеет ОДНО и ТОЛЬКО ОДНО сообщение об ошибке, поскольку он всегда ищет ключ ресурса, который называется так же, как атрибут в настраиваемом файле ресурсов (например, «Требуется» требуется запись «RequiredAttribute» в файле ресурсов)

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

public class Person
{
    [Required]
    [StringLengthLocalizedAttribute(10, MinimumLength = 5)]
    [Display(Name = "User name")]
    public string UserName { get; set; }
}

, сообщение об ошибке: " Я решаю, какая строка сообщения должна применяться в зависимости от необязательных параметров.

Итак, вот вопрос: знает ли кто-нибудь, где мы можем найти весь список ключей ресурсов, используемых атрибутами DataAnnotation, и посмотреть, сколько различных сообщений об ошибках у нас есть в каждом из них, не тестируя каждый?

Или, что еще лучше, можем ли мы иметь исходный файл RESX для просмотра строковых шаблонов и их локализации с использованием тех же ключей ресурсов? Таким образом, изменение только ErrorMessageResourceType должно работать для всех атрибутов DataAnnotations, и мне не нужно угадывать, где поместить «{1}» или «{2}» в мою локализованную строку.

Спасибо, Кто-нибудь знает, где мы можем найти полный список ключей ресурсов, используемых атрибутами DataAnnotation, и посмотреть, сколько различных сообщений об ошибках у нас в каждом из них, не тестируя каждое из них?

Или, что еще лучше, можем ли мы получить исходный файл RESX, чтобы просмотреть строковые шаблоны и локализовать их с использованием тех же ключей ресурсов? Таким образом, изменение только ErrorMessageResourceType должно работать для всех атрибутов DataAnnotations, и мне не нужно угадывать, где поместить «{1}» или «{2}» в мою локализованную строку.

Спасибо, Кто-нибудь знает, где мы можем найти полный список ключей ресурсов, используемых атрибутами DataAnnotation, и посмотреть, сколько различных сообщений об ошибках у нас в каждом из них, не тестируя каждое из них?

Или, что еще лучше, можем ли мы получить исходный файл RESX, чтобы просмотреть строковые шаблоны и локализовать их с использованием тех же ключей ресурсов? Таким образом, изменение только ErrorMessageResourceType должно работать для всех атрибутов DataAnnotations, и мне не нужно угадывать, где поместить «{1}» или «{2}» в мою локализованную строку.

Спасибо, Серджи

17
задан Community 23 May 2017 в 12:24
поделиться