Я новичок в C#, и я хочу отобразить новый и динамически созданный PDF-файл на клиентской стороне веб-браузера на новой вкладке с использованием HttpResponseMessage.Показать PDF на новой вкладке после вызова ajax MVC 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, так и Buffer, но ничего не работает.
EDIT
Вот мой взгляд код:
<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
ничего не происходит, по крайней мере частично, потому что вы ничего не делаете с результатом вашего айхакс-звонка. Если вы не пропустили содержание «успешного» обратного вызова в вашем примере? И хорошо, что ваш метод действия вызван, так что вы проверили, что в ответе определенно вернулось содержимое? – ADyson