Проверка даты MVC с использованием DataAnnotations - PullRequest
0 голосов
/ 01 августа 2010

Это моя модель класса

public class Model
{
    [DataType(DataType.DateTime, ErrorMessage = "My error message")]
    public DateTime Day { get; set; }
}

Когда я пытаюсь ввести неправильное значение, например "notdate", я получаю ошибку «Значение« notdate »недопустимо для дня». вместо моего указанного ErrorMessage "Мое сообщение об ошибке".

Я использую ASP.NET MVC 3.0 beta. Это ошибка?

Ответы [ 2 ]

1 голос
/ 02 августа 2010

Есть несколько вещей, которые следует отметить в отношении поведения, которое вы описываете.

Во-первых, вы получаете эту ошибку, потому что выдается исключение при попытке присвоить строковое значение notdate полю DateTime.Когда это происходит, любые сообщения проверки, которые могли быть связаны с полем, будут перезаписаны общим сообщением: значение {0} недопустимо для {1}.

Во-вторых, базовый атрибут DataTypeAttribute нена самом деле не выполнять какие-либо проверки на поле.Используя Reflector, вы увидите, что метод DataTypeAttribute.IsValid () объявлен следующим образом:

public override bool IsValid(object value)
{
    return true;
}

Надеюсь, это поможет.

0 голосов
/ 02 августа 2010

Нет, это функциональность по умолчанию для существующего связывателя модели.

DataType не имеет ничего общего с базовым связыванием модели и не будет переопределять основные ошибки связывания модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...