Der ModelBinder kümmert sich in ASP.NET MVC um das Konvertieren der an einen Controller übergebenen Parameter in komplexe Datentypen. Dies macht Action-Methoden wie DoStuff(Hamster h) möglich. Kann dabei einer der übergebenen Parameter nicht in den Zieltyp gecastet werden, wird die Fehlermeldung The value x is not valid for y für die jeweilige Property erzeugt.
Um diese Fehlermeldung anzupassen sind folgende Schritte notwendig:
1. Asp.Net-Ordner App_GlobalResources anlegen
2. In diesem Ordner ein Resourcen-File anlegen (z. B. Messages.resx )
3. In diesem Resourcenfile einen Eintrag PropertyValueInvalid mit der gewünschten Fehlermeldung anlegen.
4. In der global.asax in Application_Start festlegen, dass der ModelBinder diese Resourcen-Datei verwenden soll: DefaultModelBinder.ResourceClassKey = "Messages";
In früheren Versionen konnte man anscheinend mit dem Ressource-Key PropertyValueRequired auch die Fehlermeldung für Fälle, in denen ein Null-Wert nicht erlaubt ist (z. B. weil es sich beim Datentyp um einen primitiven handelt) anpassen. Bei meiner aktuellen Version (MVC 2 RC) scheint dies jedoch nicht zu funktionieren. Als Alternative steht dazu jedoch das Validierungs-Attribute Required zur Verfügung.