Ich schreibe gerne Validierungsfunktionen in meinem Controller, die die ModelState
ändern, wenn die Validierung fehlschlägt. Zum Beispiel:Was ist der Schlüsselparameter in ModelState.AddModelError in ASP.NET MVC?
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, was für dieses dumme „Schlüssel“ Argument ModelState.AddModelError
zu setzen. (Im Beispiel habe ich es einfach auf den Namen meiner UI-Anzeige gesetzt.)
Was dachten die MVC-Entwickler, als sie es hinzufügten?
Das Schlüsselargument genannt binden wird, ist gar nicht so dumm, vielleicht die Dokumentation nicht so klar ist, wie es sein sollte. :) – splattne