ASP.NET MVC 2 RC la validation côté client ne fonctionne pas
Je ne peux pas sembler obtenir la validation côté client de travailler sur un MVC 2 RC app.
Mon modèle est le suivant:
public class ExampleModel
{
[Required(ErrorMessage="Test1 is required")]
[DisplayName("Test1")]
public string Test1 { get; set; }
[Required(ErrorMessage="Test2 is required")]
[DisplayName("Test2")]
public string Test2 { get; set; }
}
Mon point de vue a le code suivant:
<% Html.EnableClientValidation(); %>
<%= Html.ValidationSummary(true, "Test was unsuccessful.") %>
<% using (Html.BeginForm()) { %>
<div>
<div class="editor-label">Test1:</div>
<div class="editor-field">
<%= Html.TextBoxFor(m => m.Test1) %>
<%= Html.ValidationMessageFor(m => m.Test1) %>
</div>
<div class="editor-label">Test2:</div>
<div class="editor-field">
<%= Html.TextBoxFor(m => m.Test2) %>
<%= Html.ValidationMessageFor(m => m.Test2) %>
</div>
<p>
<input type="submit" value="Test" />
</p>
</div>
Je laisse les deux champs vides et cliquez sur le bouton de Test et il va droit au contrôleur de poste de gestionnaire sans la validation côté client qui se passe. Je ne suis pas sûr de ce que je suis absent.
J'ai le code javascript suivant également inclus dans la vue (je ne sais pas si j'en ai besoin tous):
<link href="../../Scripts/jquery-1.3.2.min.js" type="text/javascript" />
<link href="../../Scripts/jquery.validate.min.js" type="text/javascript" />
<link href="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript" />
Les idées de ce que je fais de mal. J'ai l'impression que je suis absent quelque chose de simple et de la documentation pour MVC 2 est clairsemée.
Edit: j'ai ajouté le lien:
<link href="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript" />
Et j'ai inclus le fichier dans mon projet que j'ai eu à télécharger à partir des liens dans les réponses. Toujours pas de travail du tout. D'autres idées?
Edit: je suis à l'aide de Visual Studio 2008 avec MVC 2 RC (pas de beta) et je suis à la recherche de télécharger ou posté des exemples de validation côté client de travailler avec la version RC.
Vous devez vous connecter pour publier un commentaire.
Lorsque vous mettez à jour du projet de MVC 2 Beta, utilisation:
/src/MvcFutures/MicrosoftMvcJQueryValidation.js
de MVC 2 RC Code Source (lien). Les anciennes version Bêta ne fonctionnent pas correctement avec jquery.la validation dans les RC. Besoin fichiers javascript sont:Bonne version de MicrosoftMvcJQueryValidation.js contient ce $(document).prêt() fonction:
à la fin du fichier (en version RC).
Ok j'ai compris cela... et c'est 100% de ma faute. Bien, une couple de postes quelques informations que je n'ai besoin aussi.
Le principal problème qui, j'en suis surpris, personne n'a remarqué, c'était mon HTML à inclure les scripts... regarde mon post et de voir si vous pouvez voir le problème.
J'ai été en utilisant un
<link href=...
tag au lieu de la bonne<script src=...
tag. Totalement de ma faute, j'avais rapidement couper et coller le lien CSS sans y penser et juste de changer le type de fichier et de. Duh!!!De toute façon les liens corrects exigés sont:
Tout fonctionne ensuite. Vous certainement ne doivent inclure que les 'MicrosoftMvcJQueryValidation.js' le fichier à partir de l'avenir du projet donc je suis upvoted tous les postes que mentionné qu'.
Hors de la boîte si ce fichier n'est PAS inclus. Si vous n'êtes pas inquiet au sujet de l'utilisation de JQuery, alors vous pouvez simplement utiliser la liste suivante comprend l'utilisation de la mise en œuvre de Microsoft qui vont travailler hors de la boîte avec le RC:
J'espère que je peux sauver au moins une personne quelque chagrin... je n'arrive toujours pas à croire que je pouvais avoir vissé le comprennent et ne le remarqua pour tellement longtemps.
Merci encore à tous pour votre aide.
Vous devez inclure MicrosoftMvcJQueryValidation.js fichier :
<link href="MicrosoftMvcJQueryValidation.js" type="text/javascript" />
Vérifier: Où est la bonne version de MicrosoftMvcJQueryValidation.js pour MVC 2 beta 2?
Prochain vient de mettre
Html.EnableClientValidation();
quelque part dans la page d'Affichage.Il doit être avant la première forme que vous voulez à côté client de valider. Je préfère Site.Maître page.
De travail sur ASP.NET MVC 2 RC.
Êtes-vous sûr que vous avez inclus la bonne JS fichiers? Parce que dans Phill Haack post il a
MicrosoftMvcJQueryValidation.js
rattaché à la place deMicrosoftMvcValidation.js
.Il définit également la
ClientValidationFunction
propriété dans la vue :Si ce n'était pas de RC, mais la Bêta.
<% ViewContext.FormContext.ClientValidationFunction = "EnableClientValidation"; %>
ne fonctionne plus dans le RC. C'est aujourd'hui un appel de fonction, voir:Html.EnableClientValidation();
La valeur par défaut (et uniquement pris en charge par Microsoft) système de validation dans le ASP.NET MVC 2 Release Candidate ne pas utiliser jQuery Valider. Au lieu de cela, il utilise un nouveau système de validation qui existe totalement dans l'MicrosoftMvcValidation.js (si vous n'en avez aussi besoin d'inclure MicrosoftAjax.js).
Si vous souhaitez utiliser le jQuery Valider la bibliothèque, il est inclus en tant que partie de la ASP.NET MVC Futures du projet (disponible ici), qui est un téléchargement distinct, et dispose de son propre adaptateur fichier de script.
Aussi, concernant la
Html.ValidationSummary()
aide, je crois qu'il doit être inclus à l'intérieur de la forme, si vous voulez avoir le nouveau client-côté de la fonctionnalité. Il faudra encore travailler si c'est en dehors de la forme, mais il ne fonctionne côté serveur.