Я использую аннотации данных в своем проекте ASP.NET MVC 3 для проверки модели.Это очень удобно, но в настоящее время они волшебны для меня.Я прочитал, что аннотации данных не генерируют исключения.Как тогда MVC узнает, как добавить ошибки проверки в словарь состояний модели?Как происходит сбой установки свойства в модели из-за проверки модели до MVC, если исключение не выдается?Я всегда предполагал, что исключения генерируются каждый раз, когда происходит сбой свойства, а привязка модели MVC перехватывает исключение и добавляет его в словарь состояния модели.
Чтобы проверить это, я создал консольное приложение и добавил пример класса саннотация проверки к нему:
public class MyObject
{
[StringLength(10, MinimumLength=3)]
public string Name { get; set; }
}
Затем я создал экземпляр объекта и попытался присвоить значения свойству Name, которые были меньше 3. Свойство назначено просто отлично, несмотря на аннотацию, в которой длина строки меньше3 не допускается.
static void Main(string[] args)
{
MyObject mine = new MyObject();
mine.Name = "hi";
Console.WriteLine(mine.Name);
Console.ReadLine();
}
Эта небольшая программа записывает в консоль "привет".Зачем?Я ожидал, что он разозлится при попытке установить mine.Name
в "привет".
Чего мне не хватает?
Заранее спасибо.