2009-08-13 6 views
0

Ich habe den folgenden Code:UpdateModel in asp.net MVC, um Arrays zu binden?

var obj = new 
      { 
       site = new int[]{} 
      }; 

UpdateModel(obj, new string[] {"site"}, form.ToValueProvider()); 

Nun, wenn das Debuggen, das form.ToValueProvider() Objekt in einen Site-Schlüssel mit einigen Standorten hat, die auf Postbacks mit jedem Kontrollkästchen Namen Satz (aus einer Checkbox Form bevölkert erhalten zu "Site"). Die site int-Array-Eigenschaft wird jedoch nicht aufgefüllt und gebunden, wenn ich den UpdateModel-Aufruf aufruft. Ist dies eine gültige und mögliche Verwendung von UpdateModel? Fehle ich etwas oder gibt es einen anderen Weg?

Antwort

2

Die Eigenschaften von anonymen Objekten sind schreibgeschützt, und Arrays sind in ihrer Länge unveränderlich. Diese beiden Dinge kombinieren, um diese spezielle Verwendung von UpdateModel() ungültig zu machen.

Sie können wahrscheinlich erreichen, was Sie wollen, indem Sie Ihre Aktionsmethode schreiben, um einen int [] site Parameter zu haben. Der Binder sollte dieses Muster erkennen und ein Array erstellen, das in Ihre Methode übernommen wird.

Verwandte Themen