ErrorMessageResourceName und ErrorMessage können nicht beide gesetzt werden, aber ich setze nur eins

8

Dies ist der Fehler, den ich mit MVC2 bekomme:

%Vor%

Es kommt von der [Required] Validation DataAnnotation.

Stapelverfolgung:

%Vor%

Ich habe mein View-Modell darauf herunterkochen lassen (es bricht jedes Mal, wenn ein Attribut [Erforderlich] vorhanden ist, funktioniert ohne):

%Vor%

Mein Controller gibt ein leeres ViewModel zurück und das Formular in der Ansicht ist komplett leer ... nur eine Schaltfläche zum Absenden.

    
Ryan O'Neill 03.03.2011, 23:54
quelle

4 Antworten

19

Das Problem liegt darin, die ErrorMessage auf eine leere Zeichenfolge zu setzen. Ich müsste annehmen, dass es irgendwann im MSC-Code eine Überprüfung auf String.Empty gibt, die Probleme verursacht.

Das Setzen der ErrorMessage auf "" (ein Leerzeichen) löste das Problem.

    
Ryan O'Neill 04.03.2011, 18:01
quelle
20

In meinem Fall habe ich write ErrorMessage = null, Beispiel:

%Vor%

ErrorMessage = " " funktioniert nicht.

    
Laurentb0204 29.04.2013 18:16
quelle
0

Meine Vermutung ist, dass [DataType(DataType.Text)] eine Validierungsnachricht hat, die in Ressourcen (in System.ComponentModel.DataAnnotations.Resources) definiert ist, und das Vorhandensein dieser und Ihres [Required] verursacht dieses InvalidOperationException . Versuchen Sie, [DataType] oder [Required] zu entfernen und sehen Sie, ob die Ausnahme verschwindet.

    
Bala R 04.03.2011 00:30
quelle
0

Ich hatte ein ähnliches Problem mit einem benutzerdefinierten ValidationAttribute.

In der IsValid-Methode habe ich die ErrorMessage gesetzt. Die Lösung bestand darin, die Zuordnung zur ErrorMessage-Property zu entfernen ...

%Vor%

Ich schrieb Einheitentest und sie passierten nur, wenn ich eines nach dem anderen ausführte. Aber als ich "Run All" anklickte, passierte nur der erste? Sie sind nicht in irgendeiner Weise verknüpft ...

Ich habe auch Ссылка versucht Hat auch nicht funktioniert.

Also ja, die Lösung bestand darin, die Zuordnung zur ErrorMessage-Property zu entfernen!

    
Iannick 11.08.2017 18:23
quelle