Asp.Net MVC EnableClientValidation ne fonctionne pas
Je veux ainsi que la Validation Côté Client comme Côté Serveur de Validation. J'ai réalisé ce que les suivants:
Modèle: ( Le modèle dispose d'un modèle de données(dbml) qui contient la classe de Test )
namespace MyProject.TestProject
{
[MetadataType(typeof(TestMetaData))]
public partial class Test
{
}
public class TestMetaData
{
[Required(ErrorMessage="Please enter a name.")]
[StringLength(50)]
public string Name { get; set; }
}
}
Contrôleur n'est rien de spécial.
La Vue:
<% Html.EnableClientValidation(); %>
<% using (Ajax.BeginForm("Index", "Test", FormMethod.Post,
new AjaxOptions {}, new { enctype = "multipart/form-data" }))
{%>
<%= Html.AntiForgeryToken()%>
<fieldset>
<legend>Widget Omschrijving</legend>
<div>
<%= Html.LabelFor(Model => Model.Name) %>
<%= Html.TextBoxFor(Model => Model.Name) %>
<%= Html.ValidationMessageFor(Model => Model.Name) %>
</div>
</fieldset>
<div>
<input type="submit" value="Save" />
</div>
<% } %>
Au travail, j'ai ajouté des références à des fichiers js:
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
Finalement, il a de travailler, mais il ne marche pas à 100%:
Il ne valide avec pas de rafraîchir la page après avoir appuyé sur le bouton.
Il fait aussi de la "moitié" de la Validation Côté Client. Seulement lorsque vous tapez du texte dans la zone de texte, puis retour arrière le texte tapé. Le Côté Client de Validation s'affiche. Mais quand j'ai essayer ce en tapant entre les contrôles il n'y a pas la Validation Côté Client.
Me manque une référence ou quelque chose? (J'utilise Asp.Net MVC 2 RTM)
OriginalL'auteur Colin | 2010-03-23
Vous devez vous connecter pour publier un commentaire.
De modifier l'ordre de chargement javascript...
Eu exactement le même problème et ce effacé pour moi...
OriginalL'auteur
Je pensais qu'il me manquait quelque chose de trop, mais je sais que le jQuery de validation de la fiche de ne pas réagir à mouseEnter/mouseLeave. Selon la documentation de ce plug-in (à la branchez page - recherchez la section intitulée "quelques choses à rechercher lors de la lecture autour de avec la démo"):
Je suppose que c'est la même règle avec MVC 2 validation côté client. Je ne peux pas être sûr, car la documentation ne veut rien dire, mais "il fonctionne sur ma machine" :).
Je suis allé avec jQuery validation de l'itinéraire, qui est pris en charge dans MVC Futures (notez que la documentation est inexistante). Pour l'utiliser, il vous suffit de remplacer les balises de script pour MicrosoftAjax.js, MicrosoftMvcAjax.js et MicrosoftMvcValidation.js les fichiers avec ces deux balises:
de remplacer le chemin d'accès à la vôtre.
J'ai aussi constaté la nécessité de mettre à niveau vers la dernière version de jquery.validate.js de le développeur de la page, parce que nous sommes à l'aide d'une version ultérieure à la version de jQuery (1.4) ici.
Espère que ça aide.
OriginalL'auteur
hm..., il est tard pour répondre, mais essayez ceci:
OriginalL'auteur