Ich versuche, clientseitige Validierung mit dieser Codezeile hinzuzufügen:
@Html.EnableClientValidation()
Aber ich bekomme immer wieder folgende Fehlermeldung:
Compiler-Fehlermeldung: CS1502: Die beste überladene Methodenübereinstimmung für 'Microsoft.WebPages.WebPageUltimateBase.Write (Microsoft.WebPages.Helpers.HelperResult)' hat einige ungültige Argumente
Funktioniert dies für andere Benutzer oder ist dies in ASP MVC 3 ein anderer Ansatz?
Stattdessen können Sie anstelle der erwarteten Codezeile Folgendes verwenden.
@(ViewContext.ClientValidationEnabled = true)
Wahrscheinlich ein Versehen bei den Erweiterungsmethoden für htmlhelper.
Tatsächlich können Sie die HtmlHelper-Methode folgendermaßen verwenden
@{ Html.EnableClientValidation(); }
In ASP.NET MVC3 müssen Sie Html.EnableClientValidation () nicht auf der Ansichtsseite hinzufügen. Aktivieren Sie stattdessen einfach die clientValidation in der Datei webconfig wie folgt:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
dieser tag
@{ Html.EnableClientValidation(false); }
muss vor dem kommen
@using (Html.BeginForm())
Verwenden Sie das html <form>
-Element auf Ihrer Seite anstelle von Html.BeginForm
, um Ihr html-FORMULAR zu erstellen.
Ich hatte genau das gleiche Problem und stellte fest, dass ich das FORMULAR nicht mit Html.BeginForm
erstellte, um die erforderlichen Eingabeattribute data-val-required="The Email field is required." data-val="true" class="input-validation-error
zu erstellen, und der Platzhalter für die Validierung nicht in die Seite eingefügt wurde, obwohl ich @Html.ValidationMessageFor(m => m.User.Role)
eingefügt hatte auf meiner Ansichtsseite.
In meinem Fall habe ich nicht EditorFor verwendet, sondern TextBoxFor!
Stellen Sie sicher, dass Sie verwenden:
<td>@Html.EditorFor(m => m.Email)</td>