Foreach en propiedad IEnumerable y CheckBoxFor en ASP.Net MVC

Creo que esta pregunta se aplica a cualquiera de los ayudantes Html "For", pero mi problema específico es usar CheckBoxFor ...

Tengo un modelo que es de tipo IEnumerable, donde los derechos son un simple POCO. Este modelo es en realidad una propiedad de un modelo más grande para el que creé un EditorTemplate. Aquí está la imagen más grande de mi modelo:

public class bigmodel
{
     public string Title {get; set;}
     public string Description {get; set;}

     [UIHint("ListRights")]
     public IEnumerable<rights> Rights {get;set;}
}

public class rights
{
    public bool HasAccess {get; set;}
    public string Description {get;set;}
}

Creé una plantilla de edición llamada "ListRights" que utiliza mi vista principal. Por ejemplo: <% = Html.EditorFor (m => m.Rights)%>.

En ListRights.ascx, quiero un código como este:

<table>
  <% foreach(rights access in Model)
  { %>
      <tr>
        <td>
            <%=Html.CheckBoxFor( access ) %>
        </td>
        <td>
            <%=access.Description %>
        </td>
      </tr>
  <% } %>
</table>

Sé que la línea CheckBoxFor no funciona, pero quiero hacer algo que genere el mismo resultado, como si el acceso fuera una propiedad del modelo.

En el ejemplo anterior, me gustaría que todo se vincule automáticamente en la publicación.

He intentado falsificar el CheckBox con un código similar a este, pero no se vincula automáticamente:

<table>
  <% for(int i=0; i < Model.Count(); i++)
  { %>
      <tr>
        <td>
            <%=Html.CheckBox(string.Format("[{0}].HasAccess",i), Model.ElementAt(i).HasAccess)%>
        </td>
        <td>
            <%=access.Description %>
        </td>
      </tr>
  <% } %>
</table>

¿Alguna sugerencia?

Respuestas a la pregunta(2)

Su respuesta a la pregunta