DataAnnotations и Ресурсы не играют приятно

Я использую dataannotations в приложении MVC2 и немного обескуражен при попытке использовать ресурсы файла RESX для сообщений об ошибках.

Я попробовал следующее, но продолжаю добираться, исключением "Аргумент атрибута должно быть константное выражение, typeof выражение или выражение создания массива типа параметра атрибута"

[Required(ErrorMessage = Resources.ErrorMessages.Required)]
[Required(ErrorMessageResourceName = Resources.ErrorMessages.Required,
          ErrorMessageResourceType = typeof(Resources.ErrorMessages)]

Я продолжаю получать то сообщение об ошибке, если я не заменяю ErrorMessageResourceName с "Необходимым" вместо Resources.ErrorMessages.Required.

Кто-либо может сказать мне, если я делаю это правильно?

9
задан Timwi 21 August 2010 в 21:29
поделиться

1 ответ

Да, то, что вы делаете в конце, в основном правильно. ErrorMessageResourceName принимает то, что подразумевает имя, имя ресурса, а не сам ресурс.

Resources.ErrorMessages.Required указывает на фактическое (локализованное) сообщение об ошибке (ресурс). имя ресурса просто «Требуется», а тип диспетчера ресурсов (используемый для ErrorMessageResourceType ) - это класс, который содержит этот ресурс в в данном случае это класс Resources.ErrorMessages .

Итак, ваше объявление должно выглядеть так:

[Required(ErrorMessageResourceType = typeof(Resources.ErrorMessages),
    ErrorMessageResourceName = "Required")]
public string Something { get; set; }
13
ответ дан 4 December 2019 в 15:14
поделиться
Другие вопросы по тегам:

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