J'essaie de faire une validation dans asp .net MVC 2.0 pour mon application. Je veux avoir une bonne validation côté client. La validation doit être effectuée la plupart du temps du côté du modèle avec DataAnnotations avec des attributs personnalisés (tels que CompareTo, StringLenght, MinPasswordLenght (à partir de la valeur Membership.MinimumumpassworkdLenght) Pour cela, j'ai essayé d'utiliser xval avec jquery.validation des formes travailleront avec ajax et la plupart des problèmes sont quand je veux valider le formulaire avec ajax.asp .net MVC 2.0 Validation
Voici le lien pour exemple de projet http://www.sendspace.com/file/m9gl54.
je suis arrivé deux formes que les contrôles ValidFormControl1.ascx, ValidFormControl2.ascx
<% using (Ajax.BeginForm("CreateValidForm", "Test", new AjaxOptions { HttpMethod = "Post" })) {%> <div id="validationSummary1">
<%= Html.ValidationSummary(true)%> </div> <fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%= Html.LabelFor(model => model.Name)%>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Name)%>
<%= Html.ValidationMessageFor(model => model.Name)%>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.Email)%>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Email)%>
<%= Html.ValidationMessageFor(model => model.Email)%>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.Password)%>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Password)%>
<%= Html.ValidationMessageFor(model => model.Password)%>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.ConfirmPassword)%>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.ConfirmPassword)%>
<%= Html.ValidationMessageFor(model => model.ConfirmPassword)%>
</div>
<p>
<input type="submit" value="Create" />
</p> </fieldset> <% } %> <%= Html.ClientSideValidation<ValidModel>()
.UseValidationSummary("validationSummary1", "Please fix the following problems:") %>
Les deux semblent identiques, la seule différence réside dans la validation summaryID (validationSummary1, validationSummary2). Les deux contrôles sont rendus sur une page:
Form2
<%Html.RenderPartial("~/Views/Test/ValidFormControl2.ascx", null); %>
Form1
<%Html.RenderPartial("~/Views/Test/ValidFormControl.ascx", null); %>
propriété Validation
problème Tout d'abord, quand nous avons deux contrôles avec le même type de valider ne fonctionne pas becosue éléments HTML sont rendus par nom de domaine (donc nous avons deux éléments avec le même nom "Mot de passe"). Seul le premier formulaire sera validé par le client. La pire chose est que même si nous avons des types différents et que leur nom de champs est identique, la validation ne fonctionnera pas trop (cette chose est ce dont j'ai besoin pour réparer ce sera stupide de nommer quelques propriétés uniques pour la validation).
Y at-il une solution pour cela?
attributs personnalisés validation
personnalisé La prochaine chose que les attributs de validation (Toutes les erreurs sont quand je l'utilise Ajax pour la validation de la forme normale fonctionne sans problème.):
CompareTo - Simple comparer à cela est fait dans le modèle mvc pour le modèle de compte (attribut de classe disant avec deux propriétés sera comparé), et il n'a pas été montré sur la page. Pour ce faire, j'ai créé mon propre CachingRulesProvider avec compareRule et mon attribut. Peut-être qu'il y a un moyen plus facile de le faire?
StringLenght avec la valeur minimum et maximum, je ne décrirai pas comment je l'ai fait mais y a-t-il n'importe quel lactosérum facile de le faire?
Résumé de validation
Quand j'ai deux deux commandes de la page toutes les informations de validation sommaire va au premier élément de synthèse de validation de commande, même script généré xval dire que elementID sont différents pour le résumé. Quelqu'un sait comment le réparer?
information Validation
Y at-il possibilité d'activer des messages sur le lieu où est Html.ValidationMessageFor (modèle => model.ConfirmPassword). Becsoue pour moi ça ne se montre pas. Je voudrais avoir des informations de résumé et de champ proche, pas seulement une bordure rouge. Quelqu'un sait comment le faire?
Ajax soumettre
Quelqu'un sait comment faire facilement sans le code javascript massive pour ne soumettre via javascript. Ceci sera utilisé pour changer l'entrée soumise à l'élément href (a). Les deux semblent identiques la seule différence est que le résumé de validation
Il y a beaucoup de questions valables ici. Le SO est plus adapté pour des questions simples. Il pourrait être utile de briser ces questions et de les poster à nouveau pour obtenir des réponses. –