您好,提前感谢您的帮助,
我正在尝试通过 JQuery/Ajax 将 JSON 对象发布到 ASP.Net MVC 服务器。Controller 方法应该接受 JSON 输入并将其用作 List&Label 22 的 DataProvider。然后应该生成报告并以 PDF 文件的形式提供给用户以供下载。由于我希望 JSON 对象的结构是通用的,因此我不想在 ASP.Net 中为此请求创建特定模型,而是将 JSON 对象作为字符串传递(我知道我可能会遇到一些大小限制,但我稍后会担心 :) )。
这是我的 POST 请求:
<script>
function getReport() {
//dummy data
data = { JsonVariable1: 1, JsonVariable2: "JsonVariable2" };
var dataSource = JSON.stringify(data);
$.ajax({
type: "POST",
dataType: "text",
url: "@Url.Action("/JsonTest")",
data: "aDataSource=" + dataSource,
async: false,
success: function (result) {
alert('Success!');
}
});
}
这是控制器方法:
[HttpPost]
public ActionResult JsonTest(string aDataSource) {
combit.ListLabel22.ListLabel vLL = new combit.ListLabel22.ListLabel();
JsonDataProvider vJsonProvider = new JsonDataProvider(aDataSource);
vLL.FileRepository = GetCurrentRepository();
vLL.AutoProjectFile = mReportRepositoryId;
vLL.DataSource = vJsonProvider;
vLL.ExportOptions.Add(LlExportOption.ExportTarget, "PDF");
vLL.Print(); //This causes problem on published server
return Json("Success");
}
在本地,即在我的 Visual Studio (2015) 开发环境中,这工作正常。但是,当我将代码发布到我的 IIS 服务器时,POST 请求不会终止。我找到了这条线
vLL.Print();
成为问题。如果我注释掉这一行,请求将按预期终止。此行生成报告并将其导出为 PDF,然后将其作为下载提供给用户。
我在运行 Windows Server 2012 R2 的机器上使用 IIS 8.5 和 .NET-Framework 4.5。安装了打印机驱动程序,并且常规的 List&Label 功能正在运行(例如,启动网页设计器、通过 HTML 预览报告等)。
有谁知道我在这里缺少什么?我不是 Web 开发人员,我也可能忘记在我的 IIS 服务器上调整一些配置。
谢谢!