Modellbindung an Enums in ASP.NET MVC 3

Ich habe eine Methode in meinem controller, akzeptiert ein Objekt als argument und gibt eine JsonResult. Eine der Eigenschaften, die auf dieses Objekt ist ein enum mit drei möglichen Werten. Ich nahm an, dass der client beim übergeben in eine int für die Eigenschaft, die es bevölkern die enum, aber es funktioniert nicht, es wird standardmäßig auf 0 und das enum gesetzt ist, um die erste der beiden Auswahlmöglichkeiten.

Irgendwelche Vorschläge?

Kommentar zu dem Problem
Versuchen Sie, beim binden einer dropdown-Auswahl? Kommentarautor: Stanislav Ageev
Nein. Es ist ein Objekt übergeben bekommt als JSON zurück, dann auf den nächsten AJAX-request übergibt er das JSON-Objekt an den server zurück. Ich bin Modell-Bindung an dieses JSON-Objekt ist. Eine der Eigenschaften, die auf dieses Objekt ist ein enum in C# - code. Auf der client-Seite kann ich sehen, wenn ich serialisieren der C# - Objekt in json, richtig füllt das JSON-Objekt mit einem integer-Wert des enum, aber wenn ich den pass zurück und binden es, den enum standardmäßig auf null gesetzt. Kommentarautor: Chev
Ist dein enum basiert auf int? enum MyEnum : int {MyEnumValue = 3} Auch, wenn Sie den string-Wert (anstelle des int), es wird auch zu binden. Sie können auch eine benutzerdefinierte Modell-binder für Ihre enum. Kommentarautor: Tony Basallo
Das klingt wie eine Verhalten, wenn die enum-Eigenschaft ist nicht festgelegt.. das ist nicht Ihr Fall, wie ich vermute Kommentarautor: Stanislav Ageev
Im firebug kann ich sehen das json-Objekt hat den richtigen int und macht den ajax-request mit den richtigen int. Wenn ich den debug auf dem server die enum ist standardmäßig auf null (als wenn es nicht gesetzt). Kommentarautor: Chev

InformationsquelleAutor der Frage Chev | 2011-05-18

Schreibe einen Kommentar