J'écris une méthode d'assistance en C#/ASP.NET qui transmet un fichier au navigateur, et je voudrais être en mesure de détecter si un contenu a été écrit dans le navigateur avant d'effacer les en-têtes/contenus de réponse et envoi de fichiers octets. Si une page qui appelle ma méthode d'assistance n'est pas configurée correctement, il semble qu'il soit possible (probablement même?) Que les en-têtes de page et le contenu "normaux" soient envoyés au navigateur avant que j'essaie d'effacer réponse entière et commencer frais avec des données de fichier. Alors, est-il possible de dire si des données ont déjà été envoyées?Comment puis-je savoir si des données de réponse ont déjà été envoyées au client dans ASP.NET?
Fondamentalement, je suis à la recherche de quelque chose comme le BytesSent de propriété faux dans cet exemple:
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)
}