Das benutzerdefinierte Attribut "ErrorMessage für Compare" funktioniert nicht
Schritte zum reproduzieren:
- Erstellen Sie eine neue MVC 5 Projekt mit Individuellen Benutzerkonten.
- Blick auf die
ErrorMessage
angegeben inRegisterViewModel
für dieConfirmPassword
Eigenschaft. Es ist "Das Passwort und die Bestätigung Passwort Stimmen nicht überein.". - Erstellen und ausführen der Anwendung, und versuchen zu registrieren, mit nicht übereinstimmenden Kennwörtern. Ich werde se die Fehlermeldung "'Passwort Bestätigen' und 'Passwort' nicht überein.", statt der in das Modell.
Scheint es, wie eine benutzerdefinierte ErrorMessage
Eigenschaft auf die Compare
- Attribut nicht funktioniert. Auch wenn ich geben Sie eine Fehlermeldung, die Validierung zeigt immer noch eine Art Standard-Nachricht statt.
Diese Arbeit mit System.Web.Mvc.CompareAttribute
aber das ist jetzt veraltet und sollten Sie stattdessen System.ComponentModel.DataAnnotations.CompareAttribute
das zeigt dieses problem.
Füge ich die Compare
Attribut an eine Eigenschaft und geben Sie die ErrorMessage
wie folgt:
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match. I'll even add some random text!")]
public string ConfirmPassword { get; set; }
das erwartete Ergebnis wäre (aber das ist nicht das, was ich bekommen):
Stattdessen bekomme ich diese "default" - Fehlermeldung:
Client-seitige Validierung ist deaktiviert. Bin ich etwas fehlt? Dieses Beispiel ist entnommen aus dem MVC-5-Vorlage mit Individuellen Benutzerkonten zur Authentifizierung.
InformationsquelleAutor der Frage JLe | 2013-11-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke das ist ein bug. (Edit: Es ist.) Ich bin auch in der Lage zu reproduzieren. In der Tat, das Verhalten ist genau dasselbe wie mit der client-seitige Validierung eingeschaltet. Wenn Sie einen Blick auf das generierte HTML, du wirst sehen, es ist nicht einmal der Erzeugung der benutzerdefinierten Fehler-string - es gibt immer die Standard-Einstellung.
Tatsächlich, ich habe gerade eine Suche, um zu finden, mehr Informationen-und ich habe festgestellt, dass es eingereicht wurde, als einen bug auf codeplex. Es wurde berichtet, 8 Tagen, und jemand, der ihm zugewiesen wurde. Finden Sie im bug-report hier.
InformationsquelleAutor der Antwort John H
Ich habe das gleiche problem, Lösung:
Ändern:
:
Es funktioniert!
InformationsquelleAutor der Antwort vietdv
Es ist ein alte Fehler von 2013. Versuchen Sie den folgenden Befehl zum aktualisieren aller Projekt-Abhängigkeiten:
InformationsquelleAutor der Antwort VahidN
Verwenden System.ComponentModel.DataAnnotations.Vergleichen statt.
Da das System.Web.Mvc.Vergleichen Sie veraltet ist,den oben genannten vergleichen Attribut besitzt die gleiche Arbeit.
InformationsquelleAutor der Antwort Nithya