¿Cómo paso esta matriz js a mi controlador MVC 3?

Estoy obteniendo valores nulos en el controlador. No estoy seguro de lo que me estoy perdiendo.

Tengo una cuadrícula donde tengo una lista de invitados (con nombre y correo electrónico) donde el usuario selecciona invitado por casilla de verificación.

Luego leo el nombre y los correos electrónicos de los contactos seleccionados y construyo la matriz js. Entonces esta matriz se pasa aMVC 3 controller.

ódigo @JS:

var name ='', email='';
    var guest = new Array();
            var guests = new Array();
            $('.CBC').each(function () {  //loop grid by checkbox class
                if (this.checked) {
                    name = GetSelectedName();
                    email = GetSelectedEmail();
                    guest = { 'Email': email, 'Name': name };
                    guests.push(guest);
                }
            });

        $.ajax({
        type: "POST",
        url: GetURL(),
        data: guests,
        dataType: "json",
        success: function (res) {
           //do something
        }
});

Controlador

[HttpPost]
    public ActionResult AddGuests(List<SelectedGuest> guests)
    {            
        GuestService svc = new GuestService();
        //do something with guests
        //But Name and Email of all items in guests are null!!!
    }

public class SelectedGuest
{
    //represent the email columns of the contact grid
    public string Email { get; set; }

    //represent the Name column of the contact grid
    public string Name { get; set; }
}

Necesito convertir explícitamente js array a objeto json para serializarlo?

Respuestas a la pregunta(7)

Su respuesta a la pregunta