Нет простого / чистого способа добиться этого.Первая возможность - переопределить свойство DefaultModelBinder.ResourceClassKey в вашем приложении и указать его для пользовательского файла ресурсов:
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
DefaultModelBinder.ResourceClassKey = "Messages";
}
, а затем определить ключ PropertyValueInvalid
внутри App_GlobalResources/Messages.resx
.
Другая возможность заключается в использовании вспомогательного поля в вашей модели представления, как предложено Джереми Скиннером.
Причина этого заключается в том, что это сообщение об ошибке генерируетсясвязыватель модели по умолчанию, прежде чем на поле может произойти какая-либо проверка.Прежде чем вы сможете проверить поле, ему сначала нужно присвоить значение.И поскольку вы пытаетесь преобразовать строку, которая не представляет действительное целое число, в целое число во время привязки модели, связыватель модели по умолчанию назначает сообщение по умолчанию.