Extracting [] elements from form collection - mvc - should use icollection but have mix of types
- by bergin
hi there. have looked at Phil Haacks project on books at 
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
which has been useful, but I have a mix of data types. 
I use a modelview so that i can have a mix of objects, in this case: Order (ie order.id, order.date etc), Customer, SoilSamplingOrder and a list of SoilSamplingSubJobs which is like this [0].id, [0].field,  [1].id, [1].field etc 
Perhaps I should be using ICollection instead of List? I had problems getting UpdateModel to work so I used an extract from collection method. the first 4 method calls : orderRepository.FindOrder(id); etc give the model the original to be edited. but after this point i'm a little lost in how to update the subjobs. I hope i have delineated enough to make sense of the problem.
 [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            Order order = orderRepository.FindOrder(id);
            Customer cust = orderRepository.FindCustomer(order.customer_id);
            IList<SoilSamplingSubJob> sssj = orderRepository.FindSubOrders(id); 
            SoilSamplingOrder sso = orderRepository.FindSoilSampleOrder(id);
            try
            {
                UpdateModel(order, collection.ToValueProvider());
                UpdateModel(cust, collection.ToValueProvider());
                UpdateModel(sso, collection.ToValueProvider());
                IList<SoilSamplingSubJob> sssjs = orderRepository.extractSSSJ(collection);
                foreach (var sj in sssjs)
                    UpdateModel(sso, collection.ToValueProvider());
                orderRepository.Save();
                return RedirectToAction("Details", new { id=order.order_id});
            }
            catch
            {
                return View();
            }
        }