views:

1077

answers:

1

I have been trying out the NameValueDeserializer from MVCContrib, which will take a IList as a parameter to a controller and bind a form and its elements to it, but I was just wondering if MVC Beta had any way of doing this??

I know you can bind a strongly typed Object but I want to bind a List of these Objects for some bulk editing situations.

eg.

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

Is this possible in MVC Beta?? Thanks in Advance.

+7  A: 

Yes it is, I wrote a detailed blog post about it here. It's really easy for simple types. For complex types, you'd need to do something like:

<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" />
Haacked
Note: The hidden field named "Foo.Index" is no longer needed, as of (I believe) RC1.
Troy