Pergunta

Eu testei isso no IIS 6.1, ou seja, 7, ASP.NET 3.5 SP1.

Eu tenho um download de arquivo em um método no meu ASPX CodeBehind:

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

Isso funciona muito bem, mas se eu tentar modificar qualquer um dos meus controles laterais severos, as alterações não afetam. Eu isolei isso até a chamada para o contentType, isso aparentemente chicoteia todas as alterações pendentes no fluxo de resposta quando chamadas? Isso soa familiar para alguém?

Se o código tomar uma filial alternativa e a chamada para download não disparar, a marcação será modificada conforme o esperado.

Alguma sugestão de como posso consertar isso e fazer com que a página libere o anexo e atualize a interface do usuário no mesmo fluxo de resposta?

Isso é especificamente para atualizar o valor de validação, para que eu pudesse invadir o JS no evento PageRequestManager completo como último recurso, mas prefiro não confiar no JS para isso.

Foi útil?

Solução

Não tenho certeza do que você está tentando fazer - você está tentando servir simultaneamente um arquivo de download e uma atualização para a página HTML da qual vincularam? Não é assim que o HTML funciona.

Se você deseja alcançar esse resultado, basicamente terá que renderizar um meta redirecionamento que vai para o arquivo que é retornado no HTML, para que a página seja carregada e depois o download iniciar (como você verá muito de sites de download).

Outras dicas

Como Fyjham disse, eu realmente não entendo o que você está tentando fazer. Algumas dicas que podem ajudar:

  1. Lembre -se de que a fase de renderização, quando o conteúdo da sua marcação e controles é gerado, acontece quase a última fase do seu código atrás (bem após a página_)
  2. Depois de lavar os cabeçalhos, você não pode configurá -los novamente
  3. Os controles podem substituir alguns cabeçalhos HTTP
  4. Você não pode misturar um download de arquivo e marcação HTML na mesma resposta HTTP
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top