Question

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; }
}

De 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.

Était-ce utile?

La solution 2

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 je 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 à la place de la bonne <script src=... la balise.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:

<script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>

Tout fonctionne alors.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é que.

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:

<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>    

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.

Autres conseils

Lorsque vous mettez à jour du projet de MVC 2 Beta, utilisez: /src/MvcFutures/MicrosoftMvcJQueryValidation.js de MVC 2 RC Paquet avec le Code Sourcelien).Les anciennes version Bêta ne fonctionnent pas correctement avec jquery.la validation dans les RC.Besoin fichiers javascript sont:

<script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript" />
<script src="/Scripts/jquery.validate.min-vsdoc.js" type="text/javascript" />
<script src="/Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript" />

Bonne version de MicrosoftMvcJQueryValidation.js contient cette $(document).prêt() fonction:

// need to wait for the document to signal that it is ready
$(document).ready(function() {
    var allFormOptions = window.mvcClientValidationMetadata;
    if (allFormOptions) {
        while (allFormOptions.length > 0) {
            var thisFormOptions = allFormOptions.pop();
            __MVC_EnableClientValidation(thisFormOptions);
        }
    }
});

à la fin du fichier (en version RC).

Vous devez inclure MicrosoftMvcJQueryValidation.js fichier :

<link href="MicrosoftMvcJQueryValidation.js" type="text/javascript" />

Vérifiez ceci: Où est la bonne version de MicrosoftMvcJQueryValidation.js pour MVC 2 beta 2?

Ensuite viens de mettre Html.EnableClientValidation(); quelque part dans la page d'Affichage.Il doit 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 de MicrosoftMvcValidation.js.

Il définit également la ClientValidationFunction propriété dans la vue :

<% ViewContext.FormContext.ClientValidationFunction 
= "EnableClientValidation"; %>

Si ce n'était pas de RC, mais la Bêta.

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() helper, 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.

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