Wie validiere ich das Datum in ClientSide mit FluentValidation?

Frage

Der folgende Code funktioniert einwandfreiServer Seite und nicht Client-Seite. Warum ?


Wenn ich das Formular abschicke, wechselt die Steuerung zuBeAValidDate Funktion, um zu überprüfen, ob das Datum gültig ist oder nicht. Gibt es einen Weg zuValidate das Datum ohne Server mitFluent Validation?

Skripte

<script src="jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="jquery.validate.js" type="text/javascript"></script>
<script src="jquery.validate.unobtrusive.js" type="text/javascript"></script>

Modell

public class PersonValidator : AbstractValidator<Person>
{
    public PersonValidator()
    {
        RuleFor(x => x.FromDate)
            .NotEmpty()
            .WithMessage("Date is required!")
            .Must(BeAValidDate)
            .WithMessage("Invalid Date");
    }

    private bool BeAValidDate(String value)
    {
        DateTime date;
        return DateTime.TryParse(value, out date);
    }
}

Regler

public class PersonController : Controller
{
    public ActionResult Index()
    {
       return View(new Person { FromDate = DateTime.Now.AddDays(2).ToString()});
    }

    [HttpPost]
    public ActionResult Index(Person p)
    {
        return View(p);
    }
}

Aussicht

@using (Html.BeginForm("Index", "Person", FormMethod.Post))
{   
    @Html.LabelFor(x => x.FromDate)
    @Html.EditorFor(x => x.FromDate)
    @Html.ValidationMessageFor(x => x.FromDate)

    <input type="submit" name="Submit" value="Submit" />
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage