dedlfix: Validierung in MVC

Beitrag lesen

Tach!

Das funktioniert alles auch sehr gut, aber nur bei den Feldern, die in MSSQL als varchar definiert sind. Bei allen anderen Feldern bekomme ich eine doppelte Validierungsmeldung, einmal das, was ihr oben sieht, nämlich "Verbindung required" und einmal dasselbe in Deutsch "Das Feld "Verbindung" ist erforderlich.", die ich gar nicht definiert habe. Ich weiß nicht, woher die zweite Meldung kommt. Kann man diese eventuell abschalten?

Die Frage kann man erst beantworten, wenn man weiß, wo die Meldung herkommt. Ich tippe darauf, dass du in deinem Model bei dem entsprechenden Feld ein [Required]-Attribut oder etwas ähnliches stehen hast. Außerdem kann ich mir nicht vorstellen, dass die Regel für Verbindung auf andere Felder passt, denn die haben ja andere Namen. Die Verbindungsmeldung kann nur kommen, wenn ebenfalls die Verbindung leer oder null ist. Wenn du das in bestimmten Fällen nicht prüfen willst, musst du deine Logik entsprechend anpassen. Deine gezeigte Methode untersucht ja das Model als ganzes und nicht nur einzelne Felder.

Was noch seltsamer ist, behalten mansche Felder Ihre vorherigen Werte, obwohl ich bei denen den Inhalt gelöscht habe. Z.B bei "if (String.IsNullOrEmpty(Verbindung)" hat die Verbindung immer nocht einen Wert, obwohl ich auf dem Formular den Wert durch die Taste "Entf" gelöscht habe.

Dann kommt vielleicht irgendwoher ein Default-Wert. Da hilft nur Debuggen, wenn du nichts verdächtiges in deinem Model entdeckst. Die Controller-Action bekommt entweder ein Objekt der Model-Klasse übergeben oder die Inhalte in einer allgemeine Form (war es ein Dictionary? ich weiß es grad nicht). Diese Werte sind eventuell schon bearbeitet. Was wirklich kommt, kannst du irgendwo in den Tiefen des Request-Objekts finden. Wenn du das vergleichst, weißt du zumindest, ob der Wert schon vom Browser kommt oder von ASP.NET MVC hinzugefügt wird.

dedlfix.