Was ist der Schlüsselparameter in ModelState.AddModelError in ASP.NET MVC?
Habe ich Prüfungen in meinem controller ändern die ModelState
wenn die Validierung fehlschlägt.
Beispiel:
private bool ValidateMoney(string raw, string name, decimal min, decimal max) {
try {
var dec = Convert.ToDecimal(raw);
if (dec < min) {
throw new ArgumentOutOfRangeException(name + " must be >= " + min);
}
else if (dec > max) {
throw new ArgumentOutOfRangeException(name + " must be <= " + max);
}
}
catch (Exception ex) {
ModelState.AddModelError(name, ex.GetUserMessage());
}
return ModelState.IsValid;
}
Aber ich weiß nie zu übergebenden Wert für die key
parameter in ModelState.AddModelError
. (Im Beispiel habe ich einfach meine UI-display name.)
Welche parameter und wie sollte ich es verwenden?
InformationsquelleAutor der Frage Frank Krueger | 2009-07-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Schlüssel wird durch die ValidationMessage HTML-Hilfe zu wissen, die genaue Fehlermeldung angezeigt.
Beispiel:
den ValidationMessage Helfer wird die Meldung angezeigt wird, die Taste "Namen" in der ModelState Wörterbuch.
InformationsquelleAutor der Antwort
Den
key
parameter kann verwendet werden, zu verknüpfen, die Fehler bei der überprüfung mit einem Formular-Feld.Wenn Sie verwendet haben
@Html.TextBoxFor
(oder ähnlich) und eine@Html.ValidationMessageFor
können Sie den key-Wert aus der HTML -name
des Feldes überprüft wird (verwenden Sie Element Untersuchen).Wenn Sie gerade benutzt ein HTML -
<input>
können Sie eine Validierung Platzhalter mit@Html.ValidationMessage("AKeyIMadeUp")
und erhalten eine Meldung erscheinen wie diese:ModelState.AddModelError("AKeyIMadeUp", "The value you entered is no good");
.InformationsquelleAutor der Antwort OutstandingBill
Tatsächlich können Sie eine beliebige Validierung Nachricht, während Ihre form die Einreichung nicht erfolgreich
angenommen, Sie machen ein Feld im Modell
während Ihre modelState bekam invalid Sie können einstellen, Fehlermeldung binden mit, dass Feld-wie als.
dann deine Fehlermeldung binden mit Feld-in-Modell mit dem Namen "OldPassword"
InformationsquelleAutor der Antwort mk Mughal