Невозможно заменить заполнитель {0} в ErrorMessage для RegularExpressionAttribute - PullRequest
0 голосов
/ 01 декабря 2011
[StringLength(100),
 RegularExpression(RegexPatterns.NoBracketsRegEx,
    ErrorMessageResourceType = typeof(Resources),
    ErrorMessage = "HTML tags are not allowed in {0} field")]
public virtual string Title { get; set; }

Когда я пытаюсь ввести HTML-теги в поле Название, я получаю сообщение об ошибке:

"HTML-теги не допускаются в поле {0}"

вместо

"HTML-теги не допускаются в поле заголовка".

Я использую System.ComponentModel.DataAnnotations, Version=4.0.0.0

Я попытался установить Display(Name="Title"), но все равно не повезло !! Есть идеи, что не так?

1 Ответ

0 голосов
/ 01 декабря 2011

Вы не можете использовать ErrorMessage и ErrorMessageResourceType вместе. Их использование является взаимоисключающим.

Для нелокализованных сообщений об ошибках можно использовать свойство ErrorMessage, инициализированное строковым литералом (без спецификаторов формата, поскольку, как вы обнаружили, они будут отображается как есть).

Для локализованных сообщений об ошибках используйте свойство ErrorMessageResourceType вместе со свойством ErrorMessageResourceName.

Вот несколько связанных постов в блоге, которые могут помочь: Локализация проверки с использованием DataAnnotations и ASP.NET MVC 2: проверка модели .

...