2008-10-23 14 views
12

Próbowałem NameValueDeserializer z MVCContrib, który zajmie IList jako parametr do kontrolera i związać formularz i jego elementy do niego, ale właśnie zastanawiałem się, czy MVC Beta ma jakieś sposób robienia tego?Złożenie modelu złożonego z listy

Wiem, że można powiązać mocno wpisany obiekt, ale chcę powiązać listę tych obiektów w przypadku niektórych edycji zbiorczych.

np.

public void Save(IList<Item> items) 
{ 
    foreach (Item i in items) 
    { 
     //Save item 
    } 
} 

Czy to możliwe w wersji MVC Beta ?? Dzięki z góry.

Odpowiedz

17

Tak jest, napisałem szczegółowe blog post about it here. To proste dla prostych typów. W przypadku typów złożonych należy wykonać następujące czynności:

<input type="hidden" name="products.Index" value="0" /> 
<input type="text" name="products[0].Name" value="Beer" /> 
<input type="text" name="products[0].Price" value="7.32" /> 

<input type="hidden" name="products.Index" value="1" /> 
<input type="text" name="products[1].Name" value="Chips" /> 
<input type="text" name="products[1].Price" value="2.23" /> 

<input type="hidden" name="products.Index" value="2" /> 
<input type="text" name="products[2].Name" value="Salsa" /> 
<input type="text" name="products[2].Price" value="1.23" /> 
+3

Uwaga: Ukryte pole o nazwie "Foo.Index" nie jest już potrzebne, ponieważ (jak sądzę) RC1. – Troy

+0

Nie wydaje mi się, aby to działało, próbując ustawić coś takiego, jak np. właściwość nawigacyjna "Vendor"/"Vendor_Id" (EF4). Jakieś wskazówki? –