Passar o objeto JSON para o MVC Controller - sempre é nulo?

Eu já vi algumas perguntas aqui relacionadas a um problema semelhante, eu as li, as segui, mas ainda tenho o mesmo problema.

Basicamente, estou criando um objeto em javascript e tentando chamar um método no controlador que retornará uma string de html. Não é JSON.

Eu tenho brincado com dataType e contentType, mas ainda não tenho alegria. Portanto, desculpe-me se os trechos de código estiverem um pouco confusos.

Crie o objeto em JS.

function GetCardModel() {
    var card = {};
    card.CardTitle = $("#CardTitle").val();
    card.TopicTitle = $("#TopicTitle").val();
    card.TopicBody = $("#TopicBody").data("tEditor").value();
    card.CardClose = $("#CardClose").val();
    card.CardFromName = $("#CardFromName").val();
    return card;
}

Dê uma olhada no objeto - tudo parece bom e como deveria no JSON.

var model = GetCardModel();
alert(JSON.stringify(GetCardModel()));

Faça a chamada...

$.ajax({
            type: "POST",
            url: "/Postcard/Create/Preview/",
            dataType: "json",
            //contentType: "application/json",
            data: GetCardModel(),
            processData: true,
            success: function (data) {
                alert("im back");
                alert(data);
            },
            error: function (xhr, ajaxOptions, error) {
                alert(xhr.status);
                alert("Error: " + xhr.responseText);
                //alert(error);
            }
        });

Sempre que entro no controlador, o objeto SEMPRE está lá, mas com valores nulos para todas as propriedades.

questionAnswers(1)

yourAnswerToTheQuestion