¿Cómo uso editortemplates en MVC3 para tipos complejos?

Tengo dos clases, IVA y Producto. El producto tiene una propiedad de IVat. Estoy tratando de usar plantillas de editor en MVC para mostrar una lista desplegable de todos los objetos Vat al crear / editar un Producto. Por mi querida vida, no puedo hacer que esto funcione.

Tengo el siguiente código que muestra el menú desplegable, pero no establece el IVA para el Producto cuando se envía el formulario.

Controlador

IList<IVatRate> vatRates = SqlDataRepository.VatRates.Data.GetAllResults();
ViewBag.VatRates = new SelectList(vatRates, "Id", "Description");

Add.cshtml

@Html.EditorFor(model => model.VatRate.Id, "VatSelector", (SelectList)ViewBag.VatRates)

VatSelector.cshtml

@model SelectList
@Html.DropDownList(
        String.Empty /* */,
            (SelectList)ViewBag.Suppliers, 
        Model
    )

Estaría agradecido si alguien puede arrojar algo de luz sobre esto o incluso señalarme un buen ejemplo en la web en algún lugar ... He estado atrapado con esto durante bastantes días.

Respuestas a la pregunta(1)

Su respuesta a la pregunta