Hallo Forum,
ich brauche heute wieder mal eure Unterstützung. Das Problem liegt unter MVC und zwar bei Validierung der Datenfelder. Ich habe als Beispiel dieses Eingabefeld:
<div>
<%: Html.Label("Verbindung")%>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Verbindung)%>
<%: Html.ValidationMessage("Verbindung", "*")%>
</div>
Ich validiere alle felder durch eine eigene Klasse "public IEnumerable<RuleViolation> getRuleViolations() { }" wie folgt:
public IEnumerable<RuleViolation> getRuleViolations()
{
...
if (String.IsNullOrEmpty(Verbindung))
yield return new RuleViolation("Verbindung required", "Verbindung");
...
}
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?
Beim Einfügen solcher Felder, werden diese auch bei if (ModelState.IsValid) {} als Invalid erkannt, was mir sehr merkwürdig vorkommt. 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.
Danke im Voraus.
Gruß