Я пишу вспомогательный метод в C#/ASP.NET, который передает файл в браузер, и я хотел бы узнать, был ли какой-либо контент написан в браузере до очистки заголовков/содержимого ответа и отправка байтов файлов. Если страница, которая вызывает вызов моего вспомогательного метода, настроена неправильно, кажется, что было бы возможно (возможно даже?), Чтобы «обычные» заголовки страниц и контент отправлялись в браузер до того, как я попытался очистить весь ответ и начать с файлов. Итак, есть ли способ сообщить, были ли данные уже отправлены?Как узнать, были ли данные ответа отправлены клиенту еще в ASP.NET?
В принципе, я ищу что-то вроде BytesSent поддельной собственности в этом примере:
if (response.BytesSent == 0)
{
response.ClearHeaders();
response.ClearContent();
response.Clear();
response.ContentType = "application/octet-stream";
response.AppendHeader("Content-Disposition", "attachment; filename=" + filename);
response.AppendHeader("Content-Length", new FileInfo(path).Length.ToString());
//
// etc. (stream the file)
//
}
else
{
// throw an exception (or handle the problem in some other way)
}