MVC3 IValidatableObject Date
У меня есть базовая форма с полем даты, и я хочу проверить ее внутри IValidatableObject
, Тип поля сопоставляется со свойством DateTime, поэтому, если кто-то введет код от 26/15/2011, как вы узнаете это в методе Validate? Строго говоря, это почти как проверка объекта DateTime с DateTime, который не имеет смысла. Любые идеи о том, как обойти это или как обнаружить, что это не та дата?
1 ответ
Реализуйте IValidatableObject для вашего метода и сделайте проверку для этого поля
например
public class YourModel : IValidatableObject
{
public YourModel()
{
}
[Required(ErrorMessage = "date is required")]
public string Date { set; get; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
DateTime result;
bool parseDone = DateTime.TryParse(Date, out result);
if (!parseDone)
{
yield return new ValidationResult(Date + "is invalid", new[] { "Date" });
}
}
}
Я предлагаю использовать jquery validate и jqueryUI календарь на стороне клиента
Надеюсь, поможет