Данные-аннотации при получении сообщения об ошибке в базе данных - PullRequest
1 голос
/ 08 июня 2010

С asp.net mvc вы можете использовать аннотацию [Обязательно (errormessage = "Это необходимо")]

Как я могу создать что-то вроде этого:

[Обязательно (errormessage = "ERRORXX")]

Так что я могу посмотреть в базе данных, что это за ERRORXX, и отобразить его в моей форме. Теперь моя форма отображает ERRORXX.

Как я могу создать что-то, что решит мою проблему?

Thx!

Ответы [ 3 ]

3 голосов
/ 08 июня 2010

Просто идея: почему бы не извлечь сообщения об ошибках из файла resx ? Я думаю, что это обычный способ сделать это. Он даже позволяет легко локализовать ваши сообщения об ошибках.

Я думаю, что с помощью файла ресурсов (файл resx) еще проще изменить сообщения об ошибках позже. Например, файл resx можно открыть и отредактировать в Word Pad. Вам не нужно обращаться к базе данных с именем пользователя / паролем, запрашивать ее и т. Д.

Локализация проверки ASP.NET MVC

Глобализация проверки клиента ASP.NET MVC

Взгляните сюда тоже:

Проверка модели и метаданные в ASP.NET MVC 2

Настройка ASP.NET MVC 2 - метаданные и проверка

1 голос
/ 19 августа 2010

Маршрут по умолчанию - Ресурсы.Однако я понимаю вашу боль :) То, как я ее достиг, немного необычно, но я дам вам краткое изложение.В нашем проекте использование файлов ресурсов не вариант, так как он слишком ограничен для наших целей, подробности которого я не буду утомлять вас сейчас!:) По самому основному принципу мы устанавливаем для свойства errorMessage атрибута validation своего рода «ключ», а затем просто используем его как способ поиска правильного (согласованного) ответа в нашей базе данных CMS, когдапроверка завершается неудачно (в нашем случае с использованием MVC, когда мы обновляем модель и проверяем состояние - все на уровне контроллера).

Это тот же принцип, что и при использовании ресурсов (путем указания «ErrorMessageResourceName» и «ErrorMessageResourceType»), но вы можете делать с ней все, что хотите.

Для ясности, мы изначально расширили RequiredAttribute (в качестве одного примера) нашими собственными вещами, включая ввод аргументов с правильными именами, чтобы мы могли получитьразумное значение CMS из базы данных позже.Чтобы быть более ясным, мы используем MVC и пользовательские HtmlHelpers для рендеринга наших собственных ValidationControls, которые в конечном итоге потребляют пользовательские значения из наших пользовательских аннотаций и т. Д. Ничто из этого здесь не влияет на принцип тупости, а именноиспользуйте «errorMessage», или что-то подобное, как способ поиска фактического сообщения от того места, где ВЫ хотите, и КОГДА вы хотите.

0 голосов
/ 08 июня 2010

Я думаю, вы хотите прочитать / использовать объявления атрибутов для данного свойства?

Если это так, вы можете создать собственный класс RequiredAttribute (чтобы разрешить добавление новых или более подходящих свойств по вашему желанию). См .: Учебник по атрибутам

...