Я хочу скачать pdf, когда пользователь нажимает кнопку печати.
Мой метод контроллера:
[System.Web.Http.HttpGet]
public FileStreamResult CreatePDF()
{
MemoryStream workStream = new MemoryStream();
Document document = new Document();
PdfWriter.GetInstance(document, workStream).CloseStream = false;
document.Open();
document.Add(new Paragraph("Hello World"));
document.Add(new Paragraph(DateTime.Now.ToString()));
document.Close();
byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
workStream.Position = 0;
return new FileStreamResult(workStream, "application/pdf");
}
И вот как я это называю из вида:
$('#print').click(function (evt) {
window.location.href = "/api/pdfdownload/createpdf";
});
При нажатии кнопки печати появляется следующая ошибка:
Типу ObjectContent`1 не удалось сериализовать тело ответа для типа содержимого 'application / json;кодировка = UTF-8' .System.InvalidOperationException Произошла ошибка.Ошибка при получении значения из ReadTimeout в System.IO.MemoryStream.Исключение Newtonsoft.Json.JsonSerializationException в Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue (Цель объекта) в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues (JsonWriter - пишущий объект, значение объекта, член объекта, JractConton объекта, JractConton объекта, JractConserver, JControl_Control_Control) в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject (писатель JsonWriter, значение объекта, контракт JsonObjectContract, член JsonProperty, JsonContainerContract collectionContract, контейнерное свойство JsonProtainty, значение Newtonsoft.Jont.Член JsonProperty, JsonContainerContract containerContract, JsonProperty containerProperty) в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject (Средство записи JsonWriter, Значение объекта, контракт JsonObjectContract, член JsonProperty, JsonContainerContract collectionContract, JsonProperty containerProperty) в Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue (писатель JsonWriter, значение объекта, JsonContract значениеContract, контейнер JsonProperty, контейнер JsonContainer.riter.riter.Werty.JeriteWerialServer.JerverJerialServer.JerverJerialServerJerialServerJerialSterзначение, Тип objectType) в Newtonsoft.Json.JsonSerializer.SerializeInternal (JsonWriter jsonWriter, Значение объекта, Тип objectType) в System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream (Тип типа, Значение объекта, Поток writeStream, Кодирование системы в действующей кодировке).Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStream (Тип типа, Значение объекта, Поток writeStream, Кодировка эффективноеEncoding) в System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream (Тип типа, Значение объекта, Поток writeStream System Attent) atttp.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStreamAsync (Тип типа, Значение объекта, Поток writeStream, Содержимое HttpContent, TransportContext transportContext, CancellationToken cancellationToken) --- Конец трассировки стека из предыдущего расположения, в котором было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в System.Web.Http.WebHost.HttpControllerHandler.d__1b.MoveNext () Произошла ошибка.Тайм-ауты не поддерживаются в этом потоке.System.InvalidOperationException в System.IO.Stream.get_ReadTimeout () в GetReadTimeout (Object) в Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue (Object target)
Я просто не понимаю, что означает это исключение вэтот контекст.Буду признателен за вашу помощь.