RedirectToAction (..) con objeto complejo complejo falla

Estoy tratando de pasar un objeto de una acción de controlador a otro. El objeto que estoy pasando se ve más o menos así:

public class Person
{
   public string Name { get; set; }
   public List<PhoneNumber> PhoneNumbers {get; set; }
   public List<Address> Addresses { get; set; }
}

Mi controlador se ve así:

public class DialogController : Controller
{
    public ActionResult Index()
    {
        // Complex object structure created
        Person person = new Person();
        person.PhoneNumbers = new List();
        person.PhoneNumbers.Add("12341324");

        return RedirectToAction("Result", "Dialog", person);

    }

    public ActionResult Result(Person person)
    {
        string number = person.PhoneNumbers[0].ToString();
        return View();
    }
}

El método de resultado falla con una excepción de puntero nulo ya que la lista de Números de teléfono es repentinamente nula después de invocar la acción Resultado con el método RedirectToAction ().

¿Alguien ha visto este tipo de comportamiento antes?

Aclamaciones,

Peter

Respuestas a la pregunta(4)

Su respuesta a la pregunta