J'essaie d'ajouter une validation côté client en utilisant cette ligne de code:
@Html.EnableClientValidation()
Mais je continue à recevoir ce message d'erreur:
Message d'erreur du compilateur: CS1502: La meilleure correspondance de méthode surchargée pour 'Microsoft.WebPages.WebPageUltimateBase.Write (Microsoft.WebPages.Helpers.HelperResult)' contient des arguments non valides
Cela fonctionne-t-il pour quelqu'un d'autre, ou s'agit-il d'une autre approche à cet égard dans ASP MVC 3?
Vous pouvez plutôt utiliser ce qui suit à la place de la ligne de code attendue.
@(ViewContext.ClientValidationEnabled = true)
Probablement un oubli dans les méthodes d'extension pour htmlhelper.
En fait, vous pouvez utiliser la méthode HtmlHelper en procédant comme suit
@{ Html.EnableClientValidation(); }
Dans ASP.NET MVC3, il n’est pas nécessaire d’ajouter Html.EnableClientValidation () à la page d’affichage. Vous devez simplement activer clientValidation dans le fichier webconfig comme indiqué ci-dessous:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
cette balise
@{ Html.EnableClientValidation(false); }
doit venir avant la
@using (Html.BeginForm())
Utilisez-vous l'élément html <form>
sur votre page au lieu de Html.BeginForm
pour créer votre formulaire html?
J'ai eu exactement le même problème et j'ai compris que c'était parce que je n'utilisais pas Html.BeginForm
pour créer mon FORM, ce qui donnait les attributs d'entrée obligatoires data-val-required="The Email field is required." data-val="true" class="input-validation-error
et que le paramètre fictif pour la validation n'était pas injecté dans la page alors que j'avais la @Html.ValidationMessageFor(m => m.User.Role)
insérée sur ma page de vue.
Dans mon cas, je n'utilisais pas EditorFor, mais TextBoxFor!
Assurez-vous d'utiliser:
<td>@Html.EditorFor(m => m.Email)</td>