Измените сообщение об ошибке по умолчанию для типа данных в mvc3

#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. это будет работать только для нулевых значений, а не для символов и строк! в любом случае спасибо