Postar dados JSON por meio de um formulário no MVC4

Eu estou tentando POSTAR um objeto JSON (um modelo knockout JSON-ified, se isso é de alguma relevância) para o meu controlador MVC e ter o controlador retornar uma nova visão. Para fazer isso, estou enviando os dados com um formulário. O problema é que eu gostaria de ter o JSON automaticamente convertido em um modelo quando o controlador o recebe.

Se eu fosse usar uma chamada AJAX para isso,

var actionModel = new Object();
actionModel.Controls = ko.toJS(self.controls());
var json = JSON.stringify(actionModel);
$.ajax({
    url: "MyController/Preview",
    type: "POST",
    contentType: 'application/json; charset=utf-8',
    cache: false,
    data: json,
    success: function (data) {
    }
});

... o objeto JSON é desserializado com êxito e convertido em uma instância da minha classe de modelo.

public ActionResult Preview(ActionModel actionModel) { ... }
public class ActionModel
{
    public List<ControlModel> Controls { get; set; }
}

Se eu quiser fazer isso com um formulário, entendo que preciso inserir o JSON em um campo de entrada oculto, mas o melhor que posso gerenciar ao fazer isso é receber os dados como uma string serializada:

@using (Html.BeginForm("Preview", "MyController", FormMethod.Post, new { id = "previewForm" }))
{
    <input type="hidden" id="hiddenFieldName" />
}

public ActionResult Preview(string hiddenFieldName) { ... }

Eu poderia apenas desserializá-lo depois, mas eu realmente preferiria se MVC pudesse convertê-lo para mim, como faria com uma chamada AJAX. Isso é possível?

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion