2015-09-01 2 views
1

Я пытаюсь создать обработчик файлов для пользователей, чтобы загружать файлы, когда их имена файлов нажимаются на веб-странице. Я реализовал это несколько раз без проблем, но в настоящее время я получаю сообщение об ошибке, с которым я не могу разобраться.C# ASP. NET Inline file download handler

Код:

protected void btnViewFile_Click(object sender, EventArgs e) 
{ 
    var btnViewFile = sender as LinkButton; 
    Response.Clear(); 
    Response.ContentType = "application/octet-stream"; 
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + btnViewFile.CommandArgument.ToString()); 
    Response.WriteFile(Server.MapPath(btnViewFile.CommandArgument)); 
    Response.End(); 
} 

Если я смотрю на консоли браузера, я вижу:

Uncaught Sys.WebForms.PageRequestManagerParserErrorException: Sys.WebForms.PageRequestManagerParserErrorException: Сообщение, полученное с сервера не может быть проанализирован.

В коде нет исключений, запрошенный файл преобразуется в правильный полный путь; и я пробовал несколько разных вещей - очистка заголовков вручную, очистка до окончания, предоставление более явного заголовка контента, использование AddHeader вместо AppendHeader, использование TransmitFile, а не WriteFile, и совсем немного больше.

Любые идеи?

+0

Вы проверили [PageRequestManagerParserErrorException: сообщение, полученное с сервера, невозможно разобрать] (http://stackoverflow.com/questions/11221033/sys-webforms-pagerequestmanagerparsererrorexception-the-message-received-from-t)? –

+0

На самом деле я не вижу, чтобы его бросали куда угодно. – jacob21

+1

Ваша проблема с некоторым кодом на стороне клиента. У вас есть код на стороне клиента? – mason

ответ

0

В случае, если кто-то еще сталкивается с этой ситуацией, проблема заключалась в том, что я регистрировал его как средство обратной передачи в ScriptManager, а не в async-обратном управлении.

D'oh!