If I understand the question, I think this article is relevant:
http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx
My suggestion is to try to take advantage of the default model binder's behavior by naming your fields appropriately. Refer to the article for specific naming conventions for various situations.
EDIT: added the example view logic below. Note, calling Html.Hidden and Html.Input with the third parameter as an anonymous type with the id property specified is not really required; that's my preference for ensuring that those functions don't produce HTML elements with invalid id attributes (containing square brackets).
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Example</title>
</head>
<body>
<div><%
// Get your list of data objects from the model somehow. This will be specific to your model
IEnumerable<MyData> items = Model as IEnumerable<MyData>;
// if there are items
if (items != null)
{
// then iterate over them to create fields inside of a form
using (Html.BeginForm())
{
int itemIndex = 0;
foreach (var item in items)
{ %>
<div>
<%= Html.Hidden("MyData[" + itemIndex + "].MyDataID", item.MyDataID, new { id = "MyData_" + itemIndex + "_MyDataID" })%>
<%= Html.TextBox("MyData[" + itemIndex + "].FirstName", item.FirstName, new { id = "MyData_" + itemIndex + "_FirstName" })%>
<%= Html.TextBox("MyData[" + itemIndex + "].LastName", item.LastName, new { id = "MyData_" + itemIndex + "_LastName" })%>
</div><%
itemIndex++;
}
}
} %>
</div>
</body>
</html>
You can then have an action method in your controller to handle the posted data:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Example(IList<MyData> MyData)
{
// the MyData parameter will automatically be populated by the default ModelBinder using the values stored in the form collection (the posted data).
}