ASP.NET Binding linq results to HTML.DropDownList () usando MVC

Estoy tratando de construir una lista desplegable con una sola llamada de base de datos.

Mi tabla consta de una columna de ID y una columna CompanyName. Necesito mostrar el Nombre de la Compañía al usuario y, cuando se seleccione uno, establezca la Id. De la página como Id.

He juntado un modelo simple para almacenar la información:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace Portal.Models
{
    public class CompanyListId
    {
        public int Id { get; set; }
        public string CompanyName { get; set; }
    }

    public class CompanyListIdDBContext : DbContext
    {
        public DbSet<CompanyListId> Contacts { get; set; }
    }
}

Pero tengo un problema con el controlador y la llamada de la maquinilla de afeitar en la vista.

Mi controlador:

public void CompanyListIdSearch()
        {
            using (var dc = new CompanyListIdDBContext())
            {
                var content = from p in db.Companies
                                select new { p.CoId, p.CompanyName };
            }
        }

Llamada de afeitar en la vista:

<div id="partners" class="linen">

                        @{Html.DropDownList("CompanyListIdSearch", new SelectList(Model.CompanyName));}
                    </div>

Agarrando el modelo en la parte superior de una vista@model Portal.Models.CompanyListId

Entonces, a un nivel alto, lo que estoy tratando de hacer es tener una vista que llame al controlador con una etiqueta de afeitar, el controlador actualiza el modelo con datos y luego esos datos se muestran en el menú desplegable. ¿Me estoy acercando a esto de la manera incorrecta?

Estoy recibiendo este error:

The model item passed into the dictionary is of type 'Portal.Models.DashboardContents', but this dictionary requires a model item of type 'Portal.Models.CompanyListId'. 

Respuestas a la pregunta(1)

Su respuesta a la pregunta