我正在将ASP.NET项目转换为MVC,并且保存在ASP.NET中工作的PDF文件的功能会在MVC中生成损坏的文件。我在两个项目中都调用相同的业务层方法。该方法使用Syncfusion PDF库。发送到Syncfusion代码的HTML字符串在两个项目中完全相同。从Syncfusion代码返回的流在MVC项目中要大一个字节,而从方法返回的字节数组在MVC项目中要大106个字节。在我不知道为什么会发生这种情况之前,还没有与MVC进行过很多合作。两种情况下的代码都非常简单:
ASP.NET
byte[] result = QuestionnaireManager.GetPDFofQuestionnaire(this.Questionnaire.ID, true);
Response.Clear();
MemoryStream ms = new MemoryStream(result);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Questionnaire.pdf");
Response.Buffer = true;
ms.WriteTo(Response.OutputStream);
Response.End();
MVC
byte[] data = QuestionnaireManager.GetPDFofQuestionnaire(questionnaireID, true);
Response.AddHeader("content-disposition", "attachment;filename=Questionnaire.pdf");
return File(data, "application/pdf");
任何想法都会受到赞赏。