Я не нашел чистого способа добиться этого с помощью аннотаций данных. Одним из способов может быть написание пользовательского связующего для модели, но для такой простой задачи требуется много работы.
Еще один способ добиться этого - добавить папку 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 это изменится). Если вы хотите иметь полный контроль над логикой проверки, я бы порекомендовал вам использовать библиотеку проверки, такую как Свободная проверка или xVal .