0
我是C#的新手,我想使用HttpResponseMessage在Web标签上显示一个新的动态创建的PDF到Web浏览器客户端。ajax调用MVC后在新标签页上显示PDF C#
创建的PDF文件是有效的。 这是我的控制器代码:
[HttpGet]
public HttpResponseMessage ShowPDF()
{
MemoryStream ms = new GetPDF();
Byte[] bytes = ms.GetBuffer();
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
Response.AppendHeader("Content-Disposition", "inline; filename=test.pdf");
result.Content = new StreamContent(ms);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return result;
}
点击按钮HTML页面后,什么也没发生,没有错误,但也显示没有新的PDF。我尝试使用MemoryStream或缓冲区,但似乎没有任何工作。
编辑
这里是我的视图代码:
<button id="GetPDF" class="btn btn-primary pull-right">GET PDF</button>
的Javascript:
$('#GetPDF').click(function (e) {
e.preventDefault();
$.ajax({
url: '@Url.Action("ShowPDF", "Controller")',
method: 'GET',
success: function (data, textStatus, jqXHR) {
//Showing something but what
},
error: function (jqXHR, textStatus, errorThrown) {
//Showing error message
}
});
});
什么按钮?你没有显示任何按钮。你有没有尝试过调试代码?确保你的操作方法已经达到,等等? – mason
我编辑了我的帖子,并且是我的操作方法正在被调用。 – rvsntn
没有任何事情发生,至少部分是因为你对ajax调用的结果没有做任何事情。除非你在示例中遗漏了“成功”回调的内容?你的动作方法被调用是很好的,所以你检查了响应中是否有返回的内容? – ADyson