J'ai un formulaire qui envoie des données via JQuery à un contrôleur qui renvoie ensuite un fichier FileResult. J'ai un href avec JQuery câblé qui écrit avec succès au contrôleur. FileResult est généré mais le client ne semble pas le recevoir. Quelle est l'approche standard pour cela?Publiez le formulaire et obtenez le résultat du fichier à l'aide de JQuery/ASP MVC
0
A
Répondre
3
Même si vous pouviez recevoir le fichier en javascript, que feriez-vous avec? Enregistrez-le sur l'ordinateur client? Tu ne peux pas. Cela n'a pas vraiment de sens de demander des actions du contrôleur qui renvoient des fichiers en utilisant AJAX. Créez simplement un lien standard et laissez l'utilisateur décider quoi faire avec le fichier téléchargé.
Tout ce que vous avez besoin est de définir les en-têtes HTTP propres:
public ActionResult Download()
{
return File(@"c:\foo.pdf", "application/pdf", "foo.pdf");
}
Et puis Générez votre lien de téléchargement:
<%= Html.ActionLink("download file", "download") %>
Cela est logique. Quand ils cliquent sur le fichier téléchargé, je ne veux pas déclencher une publication en pleine page. Est-ce possible en ouvrant une autre fenêtre? – Kenoyer130
Pour clarifier, le fichier est créé en fonction des données publiées. Ce n'est pas un fichier statique. – Kenoyer130
@Kenoyer, si vous définissez les en-têtes de réponse correctement, il ne naviguera pas vers cette page. – hunter