MVC Cómo pasar una lista de objetos con el método de acción POST de elementos de lista

Quiero publicar una Lista de elementos en el controlador desde la vista de Razor, pero obtengo una Lista de objetos como nula. Mi estructura de clase es

Modelo:

List<Subjects> modelItem

class Subjects
{
    int SubId{get;set;}
    string Name{get;set;}
    List<Students> StudentEntires{get;set;}
}

class StudentEntires
{
    int StudId{get;set;}
    string Name{get;set;}
    int Mark{get;set;}
}

El modelo en sí es una lista de artículos y todos los artículos también contienen Lista de artículos secundarios. El modelo de ejemplo es una lista de materias y cada una contiene una lista de estudiantes, y quiero ingresar una marca para cada estudiante

Mi vista es como

@model IList<Subjects>  
@{   
   Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{    
   @Html.ValidationSummary(true)
   if (Model.Count > 0)
   {
       @for (int item = 0; item < Model.Count(); item++)
       {
           <b>@Model[item].Name</b><br />
           @foreach (StudentEntires markItem in Model[item].StudentEntires)
           {
               @Html.TextBoxFor(modelItem => markItem.Mark)
           }
       }
       <p style="text-align:center">
           <input type="submit" class="btn btn-primary" value="Update" />
       </p>
    }
}

Y en el controlador

    [HttpPost]
    public ActionResult OptionalMarks(int Id,ICollection<Subjects> model)
    {
        //BUt my model is null. Any idea about this?
    }

Respuestas a la pregunta(2)

Su respuesta a la pregunta