Je peux dire que je sais la réponse à ceci mais je dois demander pourquoi vous devriez faire ceci par l'intermédiaire du webmethod quand un événement régulier de côté de serveur aurait probablement comme conséquence la même expérience d'UI.
C'est comment je le fais :
dans un événement de clic de bouton :
Response.Clear () ;
Response.ClearHeaders () ;
Response.ContentType = « application/pdf » ;
//can soit également « en ligne » au lieu du « attachement » montrer immédiatement
Response.AddHeader (« Contenu-Disposition », « attachement ; filename=DefaultSaveName.pdf ») ;
//you a pu également copier des bytes à Response.OutputStream
Response.WriteFile (@ " C:\blah\pdf\mypdf.pdf ") ;
Response.End ()
Ceci a comme conséquence aucun flash ou clignotement évident dans le navigateur ainsi je ne suis pas sûr quel ajax vous achète ici.
Si vous pouvez le faire la manière d'ajax svp pour signaler comment. Je suis curieux comment vous viendrez à bout la sécurité de navigateur.