Question

Je l'ai testé dans IIS 6.1, IE 7, ASP.NET 3.5 SP1.

J'ai un téléchargement de fichier dans une méthode dans mon ASPX codebehind:

Response.ContentType = contentType;
Response.AppendHeader("Content-Disposition", contentDisposition);
Response.BinaryWrite(file);

Cela fonctionne très bien, mais si je tente de modifier l'un de mon côté sever contrôle les changements ne sont pas affecté. J'ai isolé cela à l'appel à ContentType, ce whipes apparemment tous les changements en cours dans le flux de réponse lorsqu'il est appelé? Est-ce que cela vous semble familier à tout le monde?

Si le code prend une branche alternative et l'appel à télécharger ne se déclenche pas le balisage est modifié comme prévu.

Toutes les suggestions sur la façon dont je peux résoudre ce problème et que la page débusquer la pièce jointe et mettre à jour l'interface utilisateur dans le même flux de réponse?

Ceci est particulièrement mise à jour du ValidationSummary, pour que je puisse déchirer dans la JS sur l'événement PageRequestManager complet en dernier recours, mais je préfère ne pas compter sur JS pour cela.

Était-ce utile?

La solution

Je ne sais pas ce que vous essayez de faire - vous essayez de servir simultanément un fichier de téléchargement et une mise à jour à la page HTML elles liées à partir de? Ce n'est pas comment fonctionne HTML.

Si vous voulez atteindre ce résultat, alors vous aurez essentiellement à rendre une redirection méta qui va dans le fichier qui est retourné dans le code HTML, de cette façon la page se charge, puis le téléchargement commence (comme vous verrez sur un grand nombre de sites de téléchargement).

Autres conseils

Comme dit fyjham, je ne comprends pas vraiment ce que vous essayez de faire. Quelques conseils qui pourraient aider:

  1. Gardez à l'esprit que la phase de rendu, lorsque le contenu de votre balisage et des contrôles est généré, se passe comme presque la dernière phase de votre code derrière (bien après Page_Load)
  2. Une fois que vous les en-têtes de chasse, vous ne pouvez pas les régler à nouveau
  3. Les contrôles peuvent remplacer certains en-têtes HTTP
  4. Vous ne pouvez pas mélanger un téléchargement de fichier et les balises HTML dans la même réponse HTTP
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top