【发布时间】:2013-12-19 23:38:19
【问题描述】:
我有一个(ViewResult)控制器,它接收一个字符串参数,生成一个 PDF 文件,并将 PDF 文件发送回浏览器。我已经测试了控制器本身,它工作正常。不幸的是,当我尝试从 $.ajax jQuery 函数(传递一个简单的字符串)向该控制器发布信息时,控制器 always 将字符串参数接收为 null。我已经尝试了一百种不同的 $.ajax 函数配置。这是控制器,它向浏览器返回一个 PDF(它可以工作......只要我在方法中创建 HTML):
[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
});
}
我已经尝试过'post'、'get'、json、text、html、stringify、不同的内容类型等。有谁知道如何正确地将字符串(上面的 var 'htmlData')发送到控制器?邮政?得到?还有什么?谢谢。
【问题讨论】:
-
尽量不要对您的对象进行字符串化,将其发送为
data: htmlData -
试过了。仍然为空。
-
嗯,我之前也遇到过类似的问题...我会删除
contentType部分,我发现即使按照您的方式对其进行编码(即使使用正确的类型) ,通过删除它,MVC 将正确地破译它。只是我的 2 美分 ;) -
尝试使用 Razor 对 Url 进行编码,例如 @Url.Action("myAction", "myController")`
标签: jquery asp.net-mvc download