* Ошибка времени выполнения Microsoft JScript: Sys.WebForms.PageRequestManagerParserErrorException: Сообщение, полученное от сервера, не может быть разобрано. Обычно эта ошибка возникает, когда ответ модифицирован вызовом Response.Write(), фильтрами ответа, HttpModules или включена трассировка сервера. Подробности: Ошибка разбора возле '�PNG
'.*
если я удалю
protected void gvFiles_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Download")
{
byte[] byteArray = item.AttachContent.ToArray();
Response.Clear();
Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + item.AttachFileName + "\"");
Response.AppendHeader("Content-Length", byteArray.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(byteArray);
Response.End();
}
}
Это происходит из-за того, что вы пытаетесь выполнить Response.BinaryWrite
.
Эта ошибка возникает из-за того, что вы пытаетесь вернуть не HTML в UpdatePanel
, используя недопустимый асинхронный обратный вызов. Единственное, что я могу предложить, - это попробовать использовать PostBackTrigger
и настроить таргетинг на элемент управления за пределами вашей UpdatePanel
.
Лучшим решением было бы заставить кнопку загрузки вызывать другое окно, которое вызывает .ashx
(общий обработчик) и передает двоичный файл через ashx. Вы можете просто прикрепить функцию javascript для обработки щелчка, который откроет новое окно в ashx с любыми переданными параметрами.
Эта ссылка содержит дополнительную информацию о конкретной проблеме и способах ее решения.
Есть несколько способов исправить это проблема для каждого исправления есть определенные области применения.
1. Кнопка «Зарегистрироваться» Загрузить элемент управления PostBackTrigger в триггерах дочерний тег панели обновлений, как показано ниже.
2. Вы также можете использовать метод RegisterPostBackControl объекта Элемент управления ScriptManager в Page_Load как показано ниже.
Как описывает ошибка, Response.BinaryWrite
входит в список действий в черном списке во время асинхронного обратного вызова. Это связано с особой обработкой UpdatePanel содержимого, возвращаемого во время его асинхронного обратного вызова.
Я бы рекомендовал переместить логику загрузки вложений на отдельную страницу, в обработчик HTTP или службу, разрешить доступ к ней с помощью GET (путем управления параметрами в строке запроса) и изменить элемент в gvFiles.
из чего бы то ни было (Button, ListButton, ImageButton и т. Д.) В гиперссылку на новый ресурс. Скачав GET с отдельного ресурса, вы избежите ошибки.