Question

J'aimerais répondre à une demande http avec un fichier txt et une page html. De cette façon, le client peut enregistrer le fichier et voir un résumé du contenu de ce fichier via une page HTML.

Comme le fichier est généré à la volée, je dois utiliser la gestion des états sur le serveur pour générer le résumé de la deuxième demande. J'aimerais éviter cela et résumer cela en une seule réponse.

À quoi ressemblerait le ActionResult personnalisé?

Était-ce utile?

La solution

Il s'agissait de également abordé ici sous SO .

Je lui ai répondu comme ça:

  

Non, pièces jointes en plusieurs parties pour   télécharger (comme dans l'email) n'est pas   pris en charge pour des raisons de sécurité. Ses   appelé "téléchargement au volant".

     

Notez que Gmail gère cela par   compresser dynamiquement les fichiers. Vous   devrait aussi.    http://forums.asp.net/t/1240811.aspx

Je ne crois pas qu'aucun navigateur moderne prenne en charge le multipart / mixed.

Autres conseils

Vous pouvez envoyer du XML en faisant référence à une feuille de style XSLT. Le navigateur peut effectuer la transformation et afficher une sortie HTML résultante.

L'utilisateur peut simplement "Fichier - > Enregistrer sous ...". pour stocker le fichier XML.

Pourquoi ne pas rendre le résumé sous forme de vue HTML normale et fournir un lien sous ce résumé qui pointe vers un ActionResult distinct qui renvoie des données binaires ...

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

J'ai fait des recherches sur ce sujet et, à ma grande surprise, les gens l'ont déjà fait J'ai trouvé une description ici , mais ne fournit pas de public tester l'URI, donc je ne pouvais pas tester le comportement du navigateur à ce sujet. Il mentionne également la solution pour envoyer un fichier d’archive au client. Mais je suppose que ce n’est pas ce que vous recherchez, non?

Voici un autre article montrant un exemple avec multipart les réponses. Malheureusement, l'URI de démonstration ne semble plus fonctionner.

La situation est donc la suivante: les réponses en plusieurs parties HTTP peuvent être effectuées. Il existe quelques bibliothèques clientes pour gérer celles du code de l'application. Le comportement du navigateur doit être testé ( voici une voix ). L'utilisation de cette fonctionnalité semble expérimentale et peut être recommandée, mais vous pouvez contrôler les deux extrémités de la communication afin d'éliminer les problèmes d'interopérabilité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top