MVC3 Discrète Date de Validation sur un custom format date

J'ai un champ date (j'utilise le jquery ui datepicker) dans une forme que j'ai formaté, comme suit:

ViewModel

[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime FooDate { get; set; }

Vue

@Html.EditorFor(m => m.FooDate)

Cela montre bien à la date de la façon dont je le veux, par exemple, 09-Nov-2011

Le problème, je vais arriver, se produit lorsque j'ai appuyé sur le bouton soumettre. Il continue à me dire la date n'est pas valide.... Il EST valide, vous chose stupide!

Est-il de toute façon, je peux obtenir jquery/javascript discret à ignorer ce champ ou de permettre à ce format? Jusqu'à présent, la seule façon que je peux obtenir le formulaire au travail, et si je n'ai pas le format de la date ou de l'utilisation de {0:d} comme un format de date.

Modifier:
J'ai créé un totalement distincte de mise en page+vue+contrôleur+modèle pour les tests de cette chose stupide. Ne fonctionne toujours pas sous IE/Safari.
J'ai la dernière jquery.valider/discrète des fichiers à partir de nuget.

Mon layout est vide. Il vient de charge les fichiers suivants:

"jquery-1.7.min.js"
"jquery-ui-1.8.16.min.js"
"jquery.validate.min.js"
"jquery.validate.unobtrusive.min.js"

Mon TestViewModel est simple:

public class TestViewModel
{
    [Display(Name = "Test Date:")]
    [DisplayFormat(DataFormatString = "{0:dd/MMM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? TestDate { get; set; }
}

Mon TestController va comme suit:

public class TestController : Controller
{
    public ActionResult Index()
    {
        var m = new TestViewModel();
        m.TestDate = DateTime.Now;
        return View(m);
    }
}

Mon Point De Vue:

@using (Html.BeginForm())
{
    ViewContext.FormContext.ValidationSummaryId = "valSumId";
    @Html.ValidationSummary(false, "The following errors were found:");
    @Html.AntiForgeryToken()

    @Html.LabelFor(m => m.TestDate)
    <input type="date" id="TestDate" value="@Model.TestDate.Value.ToString("dd/MMM/yyyy")" />
    <input type="submit" />
}

Pas worky.

Vous savez ce que l'ennuyeux est que? Si je change TestDate à une chaîne, il échoue toujours.

avez-vous mis le même format de date lorsque vous déclarez le datepicker? $('#date").datepicker({ constrainInput: true, dateFormat: 'D, dd M aa" ... quelque chose comme ceci
Oui je l'ai fait. Je charge une date par défaut de la vue lorsque le chargement de la page, et ça ne fonctionne toujours pas comme il
Pour mon cas, je force le format de la date dans le modèle, je le fais directement dans la vue à l'aide de cordes.le format et la validation passé. Peut-être que vous pouvez essayer 🙂

OriginalL'auteur jzm | 2011-11-09