Pergunta

Eu gostaria de responder a uma solicitação http com tanto um arquivo txt e uma página html. Desta forma, o cliente pode salvar o arquivo e ver um resumo do conteúdo desse arquivo através de uma página html.

Uma vez que o arquivo é gerado em tempo real, eu tenho que usar o gerenciamento de estado no servidor para gerar o resumo sobre o segundo pedido. Eu gostaria de evitar isso e envolvê-lo em uma única resposta.

Qual seria a aparência ActionResult personalizado como?

Foi útil?

Solução

Este foi também discutido aqui no SO .

i respondeu assim:

Não, anexos com várias partes para download (como como em e-mail) não são suportado por razões de segurança. Está chamado de "drive-by download."

Note que o Gmail lida com isto, dinamicamente fechando os arquivos. Vocês deve também. http://forums.asp.net/t/1240811.aspx

Eu não acredito quaisquer suportes navegador moderno multipart / mista.

Outras dicas

Você poderia enviar XML com referência a uma folha de estilo XSLT. O navegador pode fazer a transformação e exibir uma saída HTML resultante.

E o usuário pode simples fazer "Arquivo-> Salvar como ..." para armazenar o arquivo XML.

Por que não tornar o resumo como normal Ver HTML e fornecer um link em que o resumo que aponta para um ActionResult separado que retorna dados binários ...

public ActionResult SendFile(int id)
    {
        File file = FileRepository.GetFile(id);
        byte[] fileData = file.FileData.ToArray();
        return File(fileData, file.FileMimeType, file.FileName);
    }

Eu fiz alguma pesquisa sobre este tema e para minha surpresa, isso parece pessoas fizeram isso já. Eu encontrei uma descrição aqui , mas não fornece um público teste URI, então eu não poderia testar o comportamento do navegador sobre este assunto. Também mentiones a solução para enviar um arquivo para o cliente. Mas presumo que não é o que você está procurando, certo?

Aqui é um outro artigo mostrando um exemplo com multipart respostas. Infelizmente, a demo URI não parece estar funcionando mais.

Assim, a situação é a seguinte: HTTP de várias respostas pode ser feito. Há clientes (poucos) bibliotecas para lidar com aqueles no código do aplicativo. comportamento do navegador deve ser testada ( Aqui está uma voz). Usando esse recurso parece experimental e pode ser recomendado apenas você pode controlar ambas as extremidades da comunicação para eliminar problemas de interoperabilidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top