Question

Je suis actuellement ici pour migrer un projet de MVC1 à MVC2. Nous utilisons xVal pour la validation du côté client.

D'après ce que je comprends, il suffit que je supprimer les références à xVal et remplacer par MVC2 EnableClientSideValidation et il devrait faire l'affaire. Tout le reste serait nécessaire?

En outre, avec xVal n'a pas pu valider le côté client une liste de modèles, est-ce toujours le cas avec MVC2 + ClientSideValidation? (Ce que je veux dire avec la « liste des modèles » fait la validation sur un List<TypeOfModel>)

Exemple de ceci est: Contrôleur:

    public ActionResult Index()
    {
        Models.Model1 model = new Models.Model1();
        model.Usernames = new List<Models.Model2>();

        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });

        return View(model);
    }

Model1:

class Model1 {  
public List<Model2> Usernames { get; set; }
}

Model2:

class Model2 {  
[Required]
public string Username { get; set; }
}

Voir:

    <% Html.EnableClientValidation(); %>

    <% using (Html.BeginForm()) { %> 

        <% foreach (var username in Model.Usernames) { %> 
            <% Html.RenderPartial("View2", username); %>
            <br /><br />
        <% } %>

        <input type="submit" />

    <% } %>

View2:

<%= Html.EditorFor(f => f.Username) %>
<%= Html.ValidationMessageFor(a => a.Username)%>

Ceci est un POC où la validation côté MVC2 client échoue car il valide par champ id ...

Était-ce utile?

La solution

Been there, done que, a obtenu le T-shirt. Et souhaite que je ne suis jamais allé là-bas - la validation MVC2 est franchement pas à la hauteur xVal une fois que vous avez xVal correctement mis en œuvre. De plus, la validation MVC3 est beaucoup, beaucoup mieux fait. Donc, si je sautaient xVal, je vectoriser à en faire travailler avec MVC3 qui est une bête bien différente.

Autres conseils

Bien que je souscris peu à ce que Wyatt a dit ici en particulier la partie sur MVC3, mais j'utilise la validation côté MVC2 client et il n'a pas été une mauvaise expérience du tout.

Pour répondre à votre question, vous devez faire ce qui suit: 1. Inclure MicrosoftAjax.js et MicrosoftMvcValidation.js dans votre vue. 2. Ensuite, il suffit d'appeler l'assistant <% Html.EnableClientValidation (); %>

Il devrait pick-up vos règles de validation du modèle de DataAnnotation et vous donner la validation côté client sans trop d'effort.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top