ASP.NET MVC téléchargement de fichier et jQuery paramètre

J'ai un (ViewResult) Contrôleur qui reçoit un paramètre de chaîne, génère un fichier PDF, et envoie le fichier PDF dans le navigateur. J'ai testé le contrôleur lui-même, et il fonctionne très bien. Malheureusement, lorsque j'essaie de poster sur ce contrôleur de dollars.ajax jQuery fonction (passage d'une simple chaîne de caractères), le Contrôleur de toujours reçoit le paramètre de chaîne de valeur null. J'en ai essayé des centaines de différentes configurations de l' $.ajax fonction. Voici le contrôleur, qui renvoie un fichier PDF dans le navigateur (ça marche...tant que je créer le code HTML à l'intérieur de la méthode):

[HttpPost]
public ActionResult HtmlToPdf(String htmlData)
{ }

Voici le jQuery je suis à l'aide de mon point de vue (déclenchée par un clic sur un bouton):

function getPdf() {
    var htmlData = blah, blah, etc.”;
    $.ajax({
        url: '/Home/HtmlToPdf',
        type: 'post',
        data: JSON.stringify(htmlData),
        contentType: 'application/json; charset=utf-8',
        success: handleSuccess,
        error: handleError
    });
}

J'ai essayé de 'post', 'get', json, texte, html, stringify, différents types de contenu, etc. Personne ne sait comment correctement envoyer une chaîne de caractères (la var 'htmlData' ci-dessus) à un contrôleur? Post? Obtenir? Quelque chose d'autre? Merci.

Essayez de ne pas stringifying votre objet, l'envoyer comme data: htmlData
Essayé de cette façon. Toujours null.
Hmmm, j'ai eu des problèmes comme ça avant...je l'avais supprimer le contentType partie, j'ai trouvé que même lors de l'encodage comme vous l'avez fait (même avec le bon type), en l'enlevant, MVC permettra de déchiffrer correctement. Juste mes 2 cents 😉
Essayez d'utiliser Rasoir pour encoder l'Url ainsi, quelque chose comme @Url.Action("myAction", "myController")`

OriginalL'auteur TheDudeDude | 2013-12-19