Как изменить сообщение об ошибке проверки по умолчанию в ASP.NET MVC?
Скажем, у меня есть это свойство в моей модели:
[DisplayName("test")]
[Required(ErrorMessage = "required")]
public DateTime? SomeDate { get; set; }
когда вы введете "asdf" в Html.TextBoxFor(model => model.SomeDate)
, вы получите сообщение об ошибке проверки "Значение" asdf "недействительно для теста.".
Как вы изменяете это сообщение? ASP.NET MVC игнорируется [DataType(DataType.DateTime, ErrorMessage = 'some other message')]
Ответы
Ответ 1
По-видимому, на мой вопрос уже был ответ на Как заменить сообщение об ошибке ModelState по умолчанию в Asp.net MVC 2?.
Я опишу его здесь:
- Создайте папку App_GlobalResources для своего проекта (щелкните правой кнопкой мыши для проекта → Добавить → Добавить папку ASP.NET → App_GlobalResources).
- Добавить файл resx в эту папку. Скажите
MyNewResource.resx
.
- Добавить ключ ресурса
PropertyValueInvalid
с желаемым форматом сообщения (например, "content {0} недействителен для поля {1}" ). Если вы хотите изменить PropertyValueRequired
, тоже добавьте его.
- Добавьте код
DefaultModelBinder.ResourceClassKey = "MyNewResource"
в свой код запуска Global.asax.
Вы все настроены.
Ответ 2
Asp.Net MVC 2 - Изменение строки PropertyValueRequired
это глобальное изменение настроек.
Ответ 3
Эта ссылка может быть полезна: http://weblogs.asp.net/srkirkland/archive/2011/02/15/adding-client-validation-to-dataannotations-datatype-attribute.aspx