MVC DateTime validation défaut

J'ai trouvé beaucoup de simulair questions, mais pas une bonne solution propre qui est au travail. Je vois beaucoup de code personnalisé pour l'obtention de ce travail, mais pourquoi est-ce? Si cela ne fonctionne pas depuis le début?

Ce que je trouve étrange, c'est que dans IE9, il fonctionne, mais dans Firefox et google Chrome est un échec.
À chaque fois que im essayant de Firefox ou de Chrome, j'ai le message "Le champ d'Anniversaire doit être une date".

Quand j'ai essayer le code ci-dessous dans un nouveau MVC 4 RTM projet, je ne peux pas le faire fonctionner. Je vois le type DateTime.Maintenant par défaut sous la forme jj-MM-aaaa (Hollande) dans tous les navigateurs, mais je ne peux pas soumettre dans Firefox et Chrome.

La mondialisation de la balise n'est pas défini dans le web.config donc il doit être à l'aide de la valeur par défaut. Im de la Hollande, de sorte qu'il devrait obtenir le client de la culture, je suppose.

public class RegisterModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
    //[DataType(DataType.Date)]
    public DateTime Birthday { get; set; }
}

[AllowAnonymous]
    public ActionResult Register()
    {
        RegisterModel vm = new RegisterModel()
        {
            Birthday = DateTime.Now
        };
        return View(vm);
    }

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Register(RegisterModel model)
    {
        if (ModelState.IsValid)
        {
            //Attempt to register the user
            try
            {
                //WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
                //WebSecurity.Login(model.UserName, model.Password);
                return RedirectToAction("Index", "Home");
            }
            catch (MembershipCreateUserException e)
            {
                ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
            }
        }

        //If we got this far, something failed, redisplay form
        return View(model);
    }

Balisage

<!-- language: lang-none -->
@model DateTimeWithDatePicker.Models.RegisterModel
@{
   ViewBag.Title = "Register";
}

<hgroup class="title">
    <h1>@ViewBag.Title.</h1>
    <h2>Create a new account.</h2>
</hgroup>

@using (Html.BeginForm()) {
    @Html.AntiForgeryToken()
    @Html.ValidationSummary()

    <fieldset>
        <legend>Registration Form</legend>
        <ol>
            <li>
                @Html.LabelFor(m => m.UserName)
                @Html.TextBoxFor(m => m.UserName)
            </li>
            <li>
                @Html.LabelFor(m => m.Birthday)
                @Html.EditorFor(m => m.Birthday)
            </li>
        </ol>
        <input type="submit" value="Register" />
    </fieldset>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
  • Désolé, mais je ne sais pas comment faire pour formater le MVC Vue ci-dessus.
InformationsquelleAutor Ralph Jansen | 2012-08-24