Я не нашел чистого пути для достижения этой цели с помощью аннотаций данных. Одним из способов было бы написать настраиваемое связующее устройство, но для такой простой задачи это похоже на большую работу.
Другой способ добиться этого - добавить папку App_GlobalResources
в приложение ASP.NET. Добавьте файл ресурсов с именем Messages.resx
, содержащий файл строки PropertyValueRequired
.
PropertyValueRequired = "Some custom error message"
В вашем Application_Start
регистрации ключа класса ресурса:
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
DefaultModelBinder.ResourceClassKey = "Messages";
}
Обратите внимание, что ASP.NET MVC 2 использует ключ ресурса PropertyValueInvalid
вместо PropertyValueRequired
.
IMO Использование данных Аннотации для выполнения логики проверки ограничены (возможно, в .NET 4 это изменится). Если вы хотите иметь полный контроль над логикой проверки, я бы рекомендовал использовать библиотеку проверки, такую как Fluent Validation или xVal.
Любая причина, по которой этот вопрос был приостановлен? Пожалуйста, оставьте комментарий при опросе вопроса. ИМХО, это хороший вопрос. –
Не все понимают русский. текст атрибута должен быть на английском языке. –