Проверка даты MVC 3 Custon (между двумя другими датами) - PullRequest
0 голосов
/ 02 декабря 2011

У меня есть DateTime, и мне нужно проверить это ... Мне нужно, чтобы мой DateTime оставался между двумя другими Datetime (динамическими) ...

Как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 02 декабря 2011

Мне нравится использовать Свободная проверка . Это дает вам гораздо больше контроля над вашей проверкой.

С FluentValidation вы бы сделали что-то вроде этого (где MyDateTime, date1 и date2 являются свойствами вашего класса MyModel):

public class MyModelValidator : AbstractValidator<MyModel> {
    public MyValidator() {
        RuleFor(x => x.MyDateTime).InclusiveBetween(date1, date2);
    }
}
0 голосов
/ 03 декабря 2011

Просто объявите пользовательский атрибут Validation

   public sealed class Date1Attribute : ValidationAttribute
{
    public string date2Property { get; set; }
    public override bool IsValid(object value)
    {
        // Compare the date
        string date2String = HttpContext.Current.Request[date2Property];
        DateTime date1 = (DateTime)value;
        DateTime date2 = DateTime.Parse(date2String);

        return date1 >= date2;
    }
}

или, если вы используете средство выбора даты, вы можете ограничить minDate и maxDate следующим образом:

   $('#date1').datepicker({
    constrainInput: true, 
    dateFormat: 'D, dd M yy',
    // Once change, set date2 min date
    onSelect: function (dateText, inst) {
        $('#date2').datepicker("option", "minDate", dateText);
       }
    });

   $('#date2').datepicker({
    constrainInput: true, 
    minDate: 0,
    dateFormat: 'D, dd M yy'
   });

Надеюсь, эта помощь:)

0 голосов
/ 02 декабря 2011

Вы можете реализовать IValidatableObject .

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