#asp.net-mvc #asp.net-mvc-3 #attributes #types
#asp.net-mvc #asp.net-mvc-3 #атрибуты #типы
Вопрос:
Я разрабатываю на mvc 3, и у меня есть небольшой вопрос. Я хочу изменить сообщение об ошибке по умолчанию для недопустимого типа данных. допустим, у меня есть модель с ценой реквизита, и я хочу, чтобы его сообщение об ошибке при вводе «aaa» было «Единственное значение, которое вы можете ввести здесь, — это число».
какой самый простой способ сделать это? (Я хочу сделать это для всех моих моделей)
Ответ №1:
Вы могли бы использовать аннотацию данных регулярного выражения для вашего свойства модели, например:
[RegularExpression(@"^[0-9.]*$", ErrorMessage="The only value you can enter here is a number")]
public double Price { get; set; }
Вы должны подходить к проверке с точки зрения белого списка, то есть того, что должно быть разрешено, в отличие от черного списка, который был бы недопустимым.
Дополнительная информация здесь:
http://www.asp.net/mvc/tutorials/mvc-music-store-part-6
Надеюсь, это поможет!
Сэм
Комментарии:
1. Это не работает, продолжайте получать:
The value 'a' is not valid...
вместо свойства ErrorMessage.
Ответ №2:
Ответ №3:
Предположим, что вы работаете с entity framework или Linq to SQL и ваше имя класса — Product. вот пример для этого. создайте частичный класс, подобный приведенному ниже;
[MetadataType(typeof(Product.MetaData))]
public partial class Product {
private class MetaData {
[Required(ErrorMessage = "The only value you can enter here is a number")]
public decimal Price { get; set; }
}
}
вам следует добавить следующий оператор using, чтобы использовать dataanotations для проверки;
using System.ComponentModel.DataAnnotations;
Комментарии:
1. это будет работать только для нулевых значений, а не для символов и строк! в любом случае спасибо