Я новичок в ASP.NET AJAX и столкнулся с проблемой.
Страница использует UpdatePanel и Timer для проверки новых результатов очереди пакетной обработки. Когда результаты станут доступны, на них должны появиться ссылки для загрузки файлов результатов.
Я использую повторитель для форматирования ссылок, которые используют LinkButtons:
<asp:LinkButton ID="linkOutputFile" runat="server" OnCommand="linkOutputFile_Command" CommandArgument='<%# Container.DataItem %>'><%# Container.DataItem %></asp:LinkButton>
Элементы данных находятся в папке за пределами wwwroot, поэтому у меня этот обработчик команд автоматически создает загрузку:
protected void linkOutputFile_Command (object sender, CommandEventArgs e)
{
String strFile = e.CommandArgument as String;
String strExt = Path.GetExtension(strFile).ToLower();
String strSourceFile = Path.Combine(Common.UploadFolder, strFile);
Response.ContentType = "text/plain"; // all results files are text
Response.AddHeader("content-disposition", "attachment; filename=" + strFile);
Response.Buffer = true;
Response.Write(File.ReadAllText(strSourceFile));
Response.End();
}
Все с отображением и обновлением работает нормально, но когда щелкают ссылки, я получаю исключение PageRequestManagerParserErrorException, и в деталях отображается сообщение «Ошибка разбора рядом с« xxx »», где «xxx» - это содержимое из файлов.
Я считаю, что файлы читаются правильно, и обычно это будет работать, за исключением того, что UpdatePanel испытывает проблемы с моими вызовами Response.Write. Как я могу это исправить?