мой объект имеет поле с интервалом типа данных, когда я вставил форму HTML в этой букве текстового поля не, нумеруют блок проверки допустимости, говорят - поле должно быть числом. как я могу измениться, это обменивается сообщениями как это
[Required(ErrorMessage = "Введите название")]
[DisplayName("Название")]
public int age { get; set; }
Я не нашел чистого способа добиться этого с помощью аннотаций к данным. Одним из способов было бы написать собственный связыватель модели, но для такой простой задачи требуется много работы.
Другой способ добиться этого - добавить папку 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
.
ИМО, использующие аннотации к данным для выполнения логики проверки, ограничено (возможно, в .NET 4 это изменится). Если вы хотите иметь полный контроль над логикой проверки, я бы порекомендовал вам использовать библиотеку проверки, такую как Fluent Validation или xVal .