Colección de objetos secundarios complejos en la aplicación Asp.Net MVC 3?

Quiero poder actualizar un modelo y todas sus colecciones de objetos secundarios en la misma vista. Me han referido a estos ejemplos:http: //haacked.com/archive/2008/10/23/model-binding-to-a-list.asp yhttp: //blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style .

Por ejemplo, tengo un Consultor de objetos, que tiene una colección de "WorkExperiences". Todo esto está en un modelo de Entity Framework. En la vista, las propiedades simples del objeto Consultor no son un problema, pero la colección no puedo obtener un cuadro de texto para mostrar. Intenté seguir los ejemplos en los enlaces anteriores, pero no funciona. El problema es que, en esos ejemplos, el modelo es solo una lista (no un objeto con una propiedad de lista secundaria). Y también, el modelo nuevamente es un modelo EF. Y por alguna razón, eso no parece funcionar como en esos ejemplos.

Solo para simplificarlo, traté de hacer algo similar al ejemplo de Phil Haacks, y solo obtuve la Vista para mostrar el cuadro de texto:

@for (int i = 0; i < Model.WorkExperiences.Count; i++)
{
    Html.TextBoxFor(m => m.WorkExperiences[i].Name);
}

Intenté crear un nuevo objeto WorkExperience en el controlador para ViewModel:

    public ActionResult Create(int id)
    {
        Consultant consultant = _repository.GetConsultant(id);
        DetailsViewModel vm = new DetailsViewModel();
        vm.WorkExperiences = consultant.WorkExperiences.ToList();
        vm.WorkExperiences.Add(new WorkExperience());           
        return View(vm);
    }

Pero la Vista no muestra ningún cuadro de texto vacío para la propiedad Nombre de WorkExperience. Si, por otro lado, creo una Vista separada solo para agregar un nuevo objeto WorkExperience, pasando un nuevo objeto WorkExperience vacío como modelo, esto funciona bien:

@Html.EditorFor(model => model.Name)

Eso me da un cuadro de texto vacío, y puedo guardar el nuevo objeto. Pero, ¿por qué no puedo hacer esto en la misma vista que el objeto Consultor, con colecciones de acuerdo con los ejemplos en los enlaces anteriores?

BTW, esta es una especie de pregunta de seguimiento a una anterior, que me señaló los enlaces anteriores, pero nunca llegué a una solución final para ello. Vea esa pregunta si necesita más información: ¿Crear vistas para propiedades de objeto en el modelo en la aplicación MVC 3?

ACTUALIZAR

De acuerdo con las respuestas y comentarios a continuación, aquí hay una actualización con la Vista y una plantilla de editor:

La vista

@model Consultants.ViewModels.DetailsViewModel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Add work experience", "CreateWorkExperience", new { id = ViewBag.Consultant.Id })
</p>
<table>
    <tr>
        <th></th>
        <th>
            Name
        </th>

    </tr>

@foreach (var item in Model.WorkExperiences) {
    <tr>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
            @Html.ActionLink("Details", "Details", new { id = item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.Id })
        </td>
        <td>
            @item.Name
        </td>

    </tr>

}

</table>

@for (int i = 0; i < Model. WorkExperiences.Count; i++)
{
    Html.EditorFor(m => m. WorkExperiences[i]);
}

(Tenga en cuenta que todo esto no es realmente cómo lo diseñaré al final, todo lo que busco ahora es hacer que el objeto WorkExperience se muestre como un cuadro de texto vacío para completar, y poder agregar y eliminar cuadros de texto como en los ejemplos de Phil Haack y Steven Sanderson.)

The EditorTemplate:

@model Consultants.Models.WorkExperience


@Html.TextBoxFor(m => m.Name);

Este material con el EditorTemplate funciona bien en el proyecto de muestra de Phil Haack, que descargué para probar, pero aquí, con el modelo EF o cualquiera que sea el problema, no obtengo ningún cuadro de texto. La tabla en la vista solo está allí como prueba, porque en la tabla obtengo las filas para WorkExperiences, ya sea que agregue un objeto WorkExperience vacío o complete sus propiedades, no importa, las filas se muestran para cada objeto. Pero de nuevo, no hay cuadro de texto ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta