У меня есть контроллер (ViewResult), который получает строковый параметр, создает файл PDF и отправляет PDF-файл обратно в браузер. Я тестировал сам контроллер, и он отлично работает. К сожалению, когда я пытаюсь отправить этот контроллер из функции $ .ajax jQuery (передавая простую строку), контроллер всегда принимает строковый параметр как null. Я пробовал сотни различных конфигураций функции $ .ajax. Вот контроллер, который возвращает PDF в браузере (он работает ... до тех пор, пока я создаю HTML внутри метода):Загрузка файла ASP.NET MVC и параметр jQuery
[HttpPost]
public ActionResult HtmlToPdf(String htmlData)
{ }
Вот JQuery я использую, на мой взгляд (показываемых по нажатие кнопки):
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
});
}
Я пытался «пост», «получить», JSON, текст, HTML, stringify, различные типы контента и т.д. кто-нибудь знает, как правильно отправить строку (УАК " htmlData 'выше) к контроллеру? После? Получить? Что-то другое? Благодарю.
Постарайся не stringifying вашего объекта, отправить его в качестве 'данных:! HtmlData' – Jose
Попробованных это именно так. Все еще null. – TheDudeDude
Хммм, у меня были такие проблемы раньше ... Я бы удалил часть contentType, я обнаружил, что даже при кодировании, как вы это сделали (даже с правильным типом), удалив его, MVC будет расшифруйте его правильно. Просто мои 2 цента;) – Jose